JavaTM 2 Platform
Standard Ed. 5.0

java.awt.datatransfer
类 DataFlavor

java.lang.Object
  继承者 java.awt.datatransfer.DataFlavor
所有已实现的接口:
Externalizable, Serializable, Cloneable

public class DataFlavor
extends Object
implements Externalizable, Cloneable

每个实例都表示数据格式的不透明概念,无论其显示在剪贴板上,在拖放过程中还是在文件系统中。

DataFlavor 对象是恒定不变的,一旦实例化就永远不再更改。

有关如何使用 Swing 进行数据传输的信息,请参阅《The Java Tutorial》中的 How to Use Drag and Drop and Data Transfer 一节。

另请参见:
序列化表格

字段摘要
static DataFlavor imageFlavor
          DataFlavor 表示 Java Image 类,其中: representationClass = java.awt.Image mimeType = "image/x-java-image"
static DataFlavor javaFileListFlavor
          要将文件列表传入 Java(及基础平台)或从中传出,需要使用此类型/子类型的 DataFlavorjava.util.List 的表示形式类。
static String javaJVMLocalObjectMimeType
          要将一个引用转换为不具有关联 MIME Content 类型的任意 Java 对象引用(跨越 Transferable 接口 WITHIN THE SAME JVM),需要使用具有此类型/子类型的 DataFlavor,其中 representationClass 等于跨越 Transferable 传递的类/接口的类型。
static String javaRemoteObjectMimeType
          为了通过拖放 ACTION_LINK 操作将活动链接传递到 Remote 对象,应该使用 Mime Content 类型的 application/x-java-remote-object,其中 DataFlavor 的表示形式类表示要传输的 Remote 接口的类型。
static String javaSerializedObjectMimeType
          MIME Content 类型的 application/x-java-serialized-object 表示已变得持久的 Java 对象的图形。
static DataFlavor plainTextFlavor
          已过时。 从 1.3 开始。使用 DataFlavor.getReaderForText(Transferable) 代替 Transferable.getTransferData(DataFlavor.plainTextFlavor)
static DataFlavor stringFlavor
          DataFlavor 表示 Java Unicode String 类,其中: representationClass = java.lang.String mimeType = "application/x-java-serialized-object"
 
构造方法摘要
DataFlavor()
          构造一个新的 DataFlavor
DataFlavor(Class<?> representationClass, String humanPresentableName)
          构造一个表示 Java 类的 DataFlavor
DataFlavor(String mimeType)
          从 mimeType 字符串构造 DataFlavor
DataFlavor(String mimeType, String humanPresentableName)
          构造一个表示 MimeTypeDataFlavor
DataFlavor(String mimeType, String humanPresentableName, ClassLoader classLoader)
          构造一个表示 MimeTypeDataFlavor
 
方法摘要
 Object clone()
          返回此 DataFlavor 的克隆。
 boolean equals(DataFlavor that)
          测试 DataFlavor 与此 DataFlavor 的相等性。
 boolean equals(Object o)
          测试任意 Object 与此 DataFlavor 的相等性。
 boolean equals(String s)
          已过时。 hashCode() 协定不一致,使用 isMimeTypeEqual(String) 来代替。
 Class<?> getDefaultRepresentationClass()
           
 String getDefaultRepresentationClassAsString()
           
 String getHumanPresentableName()
          返回此 DataFlavor 表示的数据格式的得体的名称。
 String getMimeType()
          返回此 DataFlavor 的 MIME 类型字符串。
 String getParameter(String paramName)
          如果 paramName 等于 "humanPresentableName",则返回此 DataFlavor 的得体的名称。
 String getPrimaryType()
          返回此 DataFlavor 的基本 MIME 类型。
 Reader getReaderForText(Transferable transferable)
          获取文本 flavor 的 Reader,如果需要,则为期望的 charset(编码的)解码。
 Class<?> getRepresentationClass()
          返回其对象支持此 DataFlavorClass,当请求此 DataFlavor 时,将返回这些对象。
 String getSubType()
          返回此 DataFlavor 的子 MIME 类型。
static DataFlavor getTextPlainUnicodeFlavor()
          返回表示具有 Unicode 编码的纯文本的 DataFlavor,其中: representationClass = java.io.InputStream mimeType = "text/plain; charset=<platform default Unicode encoding>" Sun 的 Microsoft Windows 实现使用编码 utf-16le
 int hashCode()
          返回此 DataFlavor 的哈希码。
 boolean isFlavorJavaFileListType()
          如果指定的 DataFlavor 表示文件对象的列表,则返回 true。
 boolean isFlavorRemoteObjectType()
          如果指定的 DataFlavor 表示远程对象,则返回 true。
 boolean isFlavorSerializedObjectType()
          如果指定的 DataFlavor 表示序列化对象,则返回 true。
 boolean isFlavorTextType()
          返回此 DataFlavor 是否为 Java 平台的这一实现的有效文本 flavor。
 boolean isMimeTypeEqual(DataFlavor dataFlavor)
          比较两个 DataFlavor 对象的 mimeType
 boolean isMimeTypeEqual(String mimeType)
          返回传入的 MIME 类型的字符串表示形式是否等效于此 DataFlavor 的 MIME 类型。
 boolean isMimeTypeSerializedObject()
          DataFlavor 是否表示序列化对象?
 boolean isRepresentationClassByteBuffer()
          返回此 DataFlavor 的表示形式类是 java.nio.ByteBuffer 还是其子类。
 boolean isRepresentationClassCharBuffer()
          返回此 DataFlavor 的表示形式类是 java.io.Reader 还是其子类。
 boolean isRepresentationClassInputStream()
          DataFlavor 是否表示 java.io.InputStream
 boolean isRepresentationClassReader()
          返回此 DataFlavor 的表示形式类是 java.io.Reader 还是其子类。
 boolean isRepresentationClassRemote()
          如果表示形式类为 Remote,则返回 true。
 boolean isRepresentationClassSerializable()
          如果表示形式类可序列化,则返回 true。
 boolean match(DataFlavor that)
          测试 DataFlavor 与此 DataFlavor 的相等性。
protected  String normalizeMimeType(String mimeType)
          已过时。  
protected  String normalizeMimeTypeParameter(String parameterName, String parameterValue)
          已过时。  
 void readExternal(ObjectInput is)
          从 Serialized 状态还原此 DataFlavor
static DataFlavor selectBestTextFlavor(DataFlavor[] availableFlavors)
          从 DataFlavor 的数组中选择最佳文本 DataFlavor
 void setHumanPresentableName(String humanPresentableName)
          设置此 DataFlavor 表示的数据格式的得体的名称。
 String toString()
          此 DataFlavor 及其参数的字符串表示形式。
protected static Class<?> tryToLoadClass(String className, ClassLoader fallback)
          试图从以下位置加载类:引导加载器、系统加载器、上下文加载器(如果已存在一个)和指定的最终加载器。
 void writeExternal(ObjectOutput os)
          序列化此 DataFlavor
 
从类 java.lang.Object 继承的方法
finalize, getClass, notify, notifyAll, wait, wait, wait
 

字段详细信息

stringFlavor

public static final DataFlavor stringFlavor
DataFlavor 表示 Java Unicode String 类,其中:
     representationClass = java.lang.String
     mimeType           = "application/x-java-serialized-object"        
 


imageFlavor

public static final DataFlavor imageFlavor
DataFlavor 表示 Java Image 类,其中:
     representationClass = java.awt.Image
     mimeType            = "image/x-java-image"
 


plainTextFlavor

@Deprecated
public static final DataFlavor plainTextFlavor
已过时。 从 1.3 开始。使用 DataFlavor.getReaderForText(Transferable) 代替 Transferable.getTransferData(DataFlavor.plainTextFlavor)
DataFlavor 表示使用 Unicode 编码的纯文本,其中:
     representationClass = InputStream
     mimeType            = "text/plain; charset=unicode"
 
DataFlavor废弃,因为 (1) 其表示形式为 InputStream,一个基于 8 位的表示形式,而 Unicode 是一个 16 位的字符集;(2) charset "unicode" 不是意义明确的。"unicode" 意味着特定平台的 Unicode 实现,而不是跨平台的实现。


javaSerializedObjectMimeType

public static final String javaSerializedObjectMimeType
MIME Content 类型的 application/x-java-serialized-object 表示已变得持久的 Java 对象的图形。与此 DataFlavor 关联的表示形式类可以识别对象的 Java 类型,该对象是作为来自调用 java.awt.datatransfer.getTransferData 的引用返回的。

另请参见:
常量字段值

javaFileListFlavor

public static final DataFlavor javaFileListFlavor
要将文件列表传入 Java(及基础平台)或从中传出,需要使用此类型/子类型的 DataFlavorjava.util.List 的表示形式类。要求/保证列表的每个元素都是 java.io.File 类型。


javaJVMLocalObjectMimeType

public static final String javaJVMLocalObjectMimeType
要将一个引用转换为不具有关联 MIME Content 类型的任意 Java 对象引用(跨越 Transferable 接口 WITHIN THE SAME JVM),需要使用具有此类型/子类型的 DataFlavor,其中 representationClass 等于跨越 Transferable 传递的类/接口的类型。

对于具有此 MIME Content 类型的 DataFlavor,从 Transferable.getTransferData 返回的对象引用必须是 DataFlavor 的表示形式类的实例。

另请参见:
常量字段值

javaRemoteObjectMimeType

public static final String javaRemoteObjectMimeType
为了通过拖放 ACTION_LINK 操作将活动链接传递到 Remote 对象,应该使用 Mime Content 类型的 application/x-java-remote-object,其中 DataFlavor 的表示形式类表示要传输的 Remote 接口的类型。

另请参见:
常量字段值
构造方法详细信息

DataFlavor

public DataFlavor()
构造一个新的 DataFlavor。提供此构造方法的目的仅为支持 Externalizable 接口。它不是为公共(客户端)使用的。

从以下版本开始:
1.2

DataFlavor

public DataFlavor(Class<?> representationClass,
                  String humanPresentableName)
构造一个表示 Java 类的 DataFlavor

返回的 DataFlavor 将具有以下特征:

    representationClass = representationClass
    mimeType            = application/x-java-serialized-object        
 

参数:
representationClass - 用于在此 flavor 中传输数据的类
humanPresentableName - 用于标识此 flavor 的可读字符串;如果此参数为 null,则使用 MIME Content 类型的值
抛出:
NullPointerException - 如果 representationClass 为 null

DataFlavor

public DataFlavor(String mimeType,
                  String humanPresentableName)
构造一个表示 MimeTypeDataFlavor

返回的 DataFlavor 将具有以下特征:

如果 mimeType 为 "application/x-java-serialized-object; class=<representation class>",则结果与调用 new DataFlavor(Class:forName(<representation class>) 相同。

否则:

     representationClass = InputStream
     mimeType            = mimeType         
 

参数:
mimeType - 用于标识此 flavor 的 MIME 类型的字符串;如果 mimeType 没有指定 "class=" 参数,或者如果没有成功加载类,则抛出 IllegalArgumentException
humanPresentableName - 用于标识此 flavor 的可读字符串;如果此参数为 null,则使用 MIME Content 类型的值
抛出:
IllegalArgumentException - 如果 mimeType 无效或者如果没有成功加载类
NullPointerException - 如果 mimeType 为 null

DataFlavor

public DataFlavor(String mimeType,
                  String humanPresentableName,
                  ClassLoader classLoader)
           throws ClassNotFoundException
构造一个表示 MimeTypeDataFlavor

返回的 DataFlavor 将具有以下特征:

如果 mimeType 为 "application/x-java-serialized-object; class=<representation class>",则结果与调用 new DataFlavor(Class:forName(<representation class>) 相同。

否则:

     representationClass = InputStream
     mimeType            = mimeType         
 

参数:
mimeType - 用于标识此 flavor 的 MIME 类型的字符串
humanPresentableName - 用于标识此 flavor 的可读字符串
classLoader - 要使用的类加载器
抛出:
ClassNotFoundException - 如果没有加载类
IllegalArgumentException - 如果 mimeType 无效
NullPointerException - 如果 mimeType 为 null

DataFlavor

public DataFlavor(String mimeType)
           throws ClassNotFoundException
mimeType 字符串构造 DataFlavor。该字符串可以指定 "class=" 参数,以创建具有所需表示形式类的 DataFlavor。如果字符串不包含 "class=" 参数,则默认情况下使用 java.io.InputStream

参数:
mimeType - 用于标识此 flavor 的 MIME 类型的字符串;如果没有成功加载 "class=" 参数指定的类,则抛出 ClassNotFoundException
抛出:
ClassNotFoundException - 如果没有加载类
IllegalArgumentException - 如果 mimeType 无效
NullPointerException - 如果 mimeType 为 null
方法详细信息

tryToLoadClass

protected static final Class<?> tryToLoadClass(String className,
                                               ClassLoader fallback)
                                        throws ClassNotFoundException
试图从以下位置加载类:引导加载器、系统加载器、上下文加载器(如果已存在一个)和指定的最终加载器。

参数:
className - 要加载的类的名称
fallback - 回退加载器
返回:
加载的类
抛出:
ClassNotFoundException - 如果未找到类

toString

public String toString()
DataFlavor 及其参数的字符串表示形式。得到的 String 包含 DataFlavor 类的名称、此 flavor 的 MIME 类型及其表示形式类。如果此 flavor 具有 "text" 的基本 MIME 类型,支持 charset 参数并且具有编码的表示形式,则还包括 flavor 的 charset。要获取支持 charset 参数的文本 flavor 的列表,请参阅 selectBestTextFlavor

覆盖:
Object 中的 toString
返回:
DataFlavor 的字符串表示形式
另请参见:
selectBestTextFlavor(java.awt.datatransfer.DataFlavor[])

getTextPlainUnicodeFlavor

public static final DataFlavor getTextPlainUnicodeFlavor()
返回表示具有 Unicode 编码的纯文本的 DataFlavor,其中:
     representationClass = java.io.InputStream
     mimeType            = "text/plain;
                            charset=<platform default Unicode encoding>"
 
Sun 的 Microsoft Windows 实现使用编码 utf-16le。Sun 的 Solaris 和 Linux 实现使用编码 iso-10646-ucs-2

返回:
表示具有 Unicode 编码的纯文本的 DataFlavor

selectBestTextFlavor

public static final DataFlavor selectBestTextFlavor(DataFlavor[] availableFlavors)
DataFlavor 的数组中选择最佳文本 DataFlavor。只能选择 DataFlavor.stringFlavor、等效 flavor 和具有基本 MIME "text" 类型的 flavor。

首先 Flavor 按照其 MIME 类型排序,顺序如下所示:

例如,在 "text/html" 之上选择 "text/sgml",在 DataFlavor.plainTextFlavor 之上选择 DataFlavor.stringFlavor

如果两个或更多 flavor 共享数组中的最佳 MIME 类型,则需要检查 MIME 类型以查看它是否支持 charset 参数。

以下 MIME 类型支持(或被视为支持)charset 参数:

以下 MIME 类型不支持(或被视为不支持)charset 参数: 对于 "text/<other>" MIME 类型,首先 JRE 需要确定 MIME 类型是否支持 charset 参数,它将检查该参数是否显式列入任意选择的使用该 MIME 类型的 DataFlavor 中。如果是这样,则 JRE 将假定从该点开始,MIME 类型支持 charset 参数,并且不再进行检查。如果没有显式列入该参数,则 JRE 将假定从该点开始,MIME 类型不支持 charset 参数,并且不再进行检查。因为此检查是在任意选择的 DataFlavor 上执行的,所以如果 MIME 类型支持 charset 参数,则开发人员必须确保所有具有该 "text/<other>" MIME 类型的 DataFlavor 指定了该参数。开发人员永远不应该依赖 JRE 用平台的默认 charset 来替代 "text/<other>" DataFlavor。未能遵守此限制将导致不确定的行为。

如果数组中的最佳 MIME 类型不支持 charset 参数,则共享 MIME 类型的 flavor 按照其表示形式类排序,顺序如下所示:java.io.InputStreamjava.nio.ByteBuffer[B、<all others>。

如果两个或多个 flavor 共享最佳表示形式类,或者如果任何 flavor 都不具有三个指定的表示形式中的一个,则随意地选择这些 flavor 中的一个。

如果数组中的最佳 MIME 类型支持 charset 参数,则共享 MIME 类型的 flavor 按照其表示形式类排序,顺序如下所示:java.io.Readerjava.lang.Stringjava.nio.CharBuffer[C、<all others>。

如果两个或多个 flavor 共享最佳表示形式类,并且该表示形式是显式列出的四个表示形式中的一个,则不随意地选择这些 flavor 中的一个。但是,如果任何 flavor 都不是四个指定的表示形式中的一个,则通过其 charset 对 flavor 排序。Unicode charset,如 "UTF-16"、"UTF-8"、"UTF-16BE"、"UTF-16LE" 及其别名被认为是最好的。在它们之后,选择平台默认的 charset 及其别名。"US-ASCII" 及其别名是最差的。所有其他 charset 都是按字母顺序选择的,但仅考虑 Java 平台的这一实现所支持的 charset。

如果两个或更多 flavor 共享最佳 charset,则 flavor 再次按照其表示形式类排序,顺序如下所示:java.io.InputStreamjava.nio.ByteBuffer[B、<all others>。

如果两个或多个 flavor 共享最佳表示形式类,或者如果任何 flavor 都不具有三个指定的表示形式中的一个,则随意地选择这些 flavor 中的一个。

参数:
availableFlavors - 一组可用的 DataFlavor
返回:
按照以上指定规则的最佳(最高逼真度)flavor,或者如果 availableFlavorsnull、长度为零或包含非文本 flavor,则返回 null
从以下版本开始:
1.3

getReaderForText

public Reader getReaderForText(Transferable transferable)
                        throws UnsupportedFlavorException,
                               IOException
获取文本 flavor 的 Reader,如果需要,则为期望的 charset(编码的)解码。受支持的表示形式类有:java.io.Readerjava.lang.Stringjava.nio.CharBuffer[Cjava.io.InputStreamjava.nio.ByteBuffer[B

因为不支持 charset 参数的文本 flavor 是以非标准格式编码的,所以应为这种 flavor 调用此方法。但是,为了保持向后兼容性,如果为这样的 flavor 调用了此方法,则此方法将假定该 flavor 支持 charset 参数,并相应地尝试为其解码。有关不支持 charset 参数的文本 flavor 的列表,请参阅 selectBestTextFlavor

参数:
transferable - 将在此 flavor 中请求其数据的 Transferable
返回:
要读取 Transferable 的数据的 Reader
抛出:
IllegalArgumentException - 如果表示形式类不是上面列出的七种中的一种
IllegalArgumentException - 如果 Transferable 包含 null 数据
NullPointerException - 如果 Transferablenull
UnsupportedEncodingException - 如果此 flavor 的表示形式为 java.io.InputStreamjava.nio.ByteBuffer[B,但 Java 平台的这一实现不支持此 flavor 的编码
UnsupportedFlavorException - 如果 Transferable 不支持此 flavor
IOException - 如果因 I/O 错误而无法读取数据
从以下版本开始:
1.3
另请参见:
selectBestTextFlavor(java.awt.datatransfer.DataFlavor[])

getMimeType

public String getMimeType()
返回此 DataFlavor 的 MIME 类型字符串。

返回:
此 flavor 的 MIME 类型字符串

getRepresentationClass

public Class<?> getRepresentationClass()
返回其对象支持此 DataFlavorClass,当请求此 DataFlavor 时,将返回这些对象。

返回:
其对象支持此 DataFlavorClass,当请求此 DataFlavor 时,将返回这些对象

getHumanPresentableName

public String getHumanPresentableName()
返回此 DataFlavor 表示的数据格式的得体的名称。此名称将由各个国家来本地化。

返回:
DataFlavor 表示的数据格式的得体的名称

getPrimaryType

public String getPrimaryType()
返回此 DataFlavor 的基本 MIME 类型。

返回:
DataFlavor 的基本 MIME 类型

getSubType

public String getSubType()
返回此 DataFlavor 的子 MIME 类型。

返回:
DataFlavor 的子 MIME 类型

getParameter

public String getParameter(String paramName)
如果 paramName 等于 "humanPresentableName",则返回此 DataFlavor 的得体的名称。否则返回与 paramName 关联的 MIME 类型值。

参数:
paramName - 请求的参数名
返回:
名称参数的值,或者如果不存在关联值,则返回 null

setHumanPresentableName

public void setHumanPresentableName(String humanPresentableName)
设置此 DataFlavor 表示的数据格式的得体的名称。此名称将由各个国家来本地化。

参数:
humanPresentableName - 新的得体的名称

equals

public boolean equals(Object o)
测试任意 Object 与此 DataFlavor 的相等性。当且仅当两个 DataFlavor 的 MIME 基本类型、子类型和表示形式类都相等时,才可以认为它们是相等的。此外,如果基本类型为 "text",子类型表示支持 charset 参数的文本 flavor,而表示形式类不是 java.io.Readerjava.lang.Stringjava.nio.CharBuffer[C,则 charset 参数也一定是相等的。如果没有为一个或两个 DataFlavor 显式指定 charset,则假定平台默认的编码。要获取支持 charset 参数的文本 flavor 的列表,请参阅 selectBestTextFlavor

覆盖:
Object 中的 equals
参数:
o - 要与 this 相比较的 Object
返回:
如果 that 等效于此 DataFlavor,则返回 true;否则返回 false
另请参见:
selectBestTextFlavor(java.awt.datatransfer.DataFlavor[])

equals

public boolean equals(DataFlavor that)
测试 DataFlavor 与此 DataFlavor 的相等性。当且仅当两个 DataFlavor 的 MIME 基本类型、子类型和表示形式类都相等时,才可以认为它们是相等的。此外,如果基本类型为 "text",子类型表示支持 charset 参数的文本 flavor,而表示形式类不是 java.io.Readerjava.lang.Stringjava.nio.CharBuffer[C,则 charset 参数也一定是相等的。如果没有为一个或两个 DataFlavor 显式指定 charset,则假定平台默认的编码。要获取支持 charset 参数的文本 flavor 的列表,请参阅 selectBestTextFlavor

参数:
that - 要与 this 相比较的 DataFlavor
返回:
如果 that 等效于此 DataFlavor,则返回 true;否则返回 false
另请参见:
selectBestTextFlavor(java.awt.datatransfer.DataFlavor[])

equals

@Deprecated
public boolean equals(String s)
已过时。 hashCode() 协定不一致,使用 isMimeTypeEqual(String) 来代替。

仅将 mimeType 与传入的 String 相比较,在此比较关系中不考虑 representationClass。如果需要比较 representationClass,则可以使用 equals(new DataFlavor(s))

返回:
true,如果 String (MimeType) 相等

hashCode

public int hashCode()
返回此 DataFlavor 的哈希码。对于两个相等的 DataFlavor,其哈希码也相等。对于与 DataFlavor.equals(String) 匹配的 String,不保证 DataFlavor 的哈希码等于 String 的哈希码。

覆盖:
Object 中的 hashCode
返回:
DataFlavor 的哈希码
另请参见:
Object.equals(java.lang.Object), Hashtable

match

public boolean match(DataFlavor that)
测试 DataFlavor 与此 DataFlavor 的相等性。当且仅当两个 DataFlavor 的 MIME 基本类型、子类型和表示形式类都相等时,才可以认为它们是相等的。此外,如果基本类型为 "text",子类型表示支持 charset 参数的文本 flavor,而表示形式类不是 java.io.Readerjava.lang.Stringjava.nio.CharBuffer[C,则 charset 参数也一定是相等的。如果没有为一个或两个 DataFlavor 显式指定 charset,则假定平台默认的编码。要获取支持 charset 参数的文本 flavor 的列表,请参阅 selectBestTextFlavor

参数:
that - 要与 this 相比较的 DataFlavor
返回:
如果 that 等效于此 DataFlavor,则返回 true;否则返回 false
另请参见:
selectBestTextFlavor(java.awt.datatransfer.DataFlavor[])

isMimeTypeEqual

public boolean isMimeTypeEqual(String mimeType)
返回传入的 MIME 类型的字符串表示形式是否等效于此 DataFlavor 的 MIME 类型。在比较关系中不能包括参数。

参数:
mimeType - MIME 类型的字符串表示形式
返回:
如果传入的 MIME 的字符串表示形式等效于此 DataFlavor 的 MIME 类型,则返回 true;否则返回 false
抛出:
NullPointerException - 如果 mimeType 为 null

isMimeTypeEqual

public final boolean isMimeTypeEqual(DataFlavor dataFlavor)
比较两个 DataFlavor 对象的 mimeType。不考虑任何参数。

参数:
dataFlavor - 要比较的 DataFlavor
返回:
如果 MimeType 相等,则返回 true;否则返回 false

isMimeTypeSerializedObject

public boolean isMimeTypeSerializedObject()
DataFlavor 是否表示序列化对象?


getDefaultRepresentationClass

public final Class<?> getDefaultRepresentationClass()

getDefaultRepresentationClassAsString

public final String getDefaultRepresentationClassAsString()

isRepresentationClassInputStream

public boolean isRepresentationClassInputStream()
DataFlavor 是否表示 java.io.InputStream


isRepresentationClassReader

public boolean isRepresentationClassReader()
返回此 DataFlavor 的表示形式类是 java.io.Reader 还是其子类。

从以下版本开始:
1.4

isRepresentationClassCharBuffer

public boolean isRepresentationClassCharBuffer()
返回此 DataFlavor 的表示形式类是 java.io.Reader 还是其子类。

从以下版本开始:
1.4

isRepresentationClassByteBuffer

public boolean isRepresentationClassByteBuffer()
返回此 DataFlavor 的表示形式类是 java.nio.ByteBuffer 还是其子类。

从以下版本开始:
1.4

isRepresentationClassSerializable

public boolean isRepresentationClassSerializable()
如果表示形式类可序列化,则返回 true。

返回:
true,如果表示形式类可序列化

isRepresentationClassRemote

public boolean isRepresentationClassRemote()
如果表示形式类为 Remote,则返回 true。

返回:
true,如果表示形式类为 Remote

isFlavorSerializedObjectType

public boolean isFlavorSerializedObjectType()
如果指定的 DataFlavor 表示序列化对象,则返回 true。

返回:
true,如果指定的 DataFlavor 表示 Serialized Object

isFlavorRemoteObjectType

public boolean isFlavorRemoteObjectType()
如果指定的 DataFlavor 表示远程对象,则返回 true。

返回:
true,如果指定的 DataFlavor 表示远程对象

isFlavorJavaFileListType

public boolean isFlavorJavaFileListType()
如果指定的 DataFlavor 表示文件对象的列表,则返回 true。

返回:
true,如果指定的 DataFlavor 表示文件对象的列表

isFlavorTextType

public boolean isFlavorTextType()
返回此 DataFlavor 是否为 Java 平台的这一实现的有效文本 flavor。只有等效于 DataFlavor.stringFlavorDataFlavor 并且其 "text" 为基本 MIME 类型的 flavor 才是有效的文本 flavor。

如果此 flavor 支持 charset 参数,则其必须等效于 DataFlavor.stringFlavor,或者其表示形式必须为 java.io.Readerjava.lang.Stringjava.nio.CharBuffer[Cjava.io.InputStreamjava.nio.ByteBuffer[B。如果表示形式为 java.io.InputStreamjava.nio.ByteBuffer[B,则此 flavor 的 charset 参数必须受 Java 平台的这一实现支持。如果未指定 charset,则假定其为始终受支持的平台默认 charset。

如果此 flavor 不支持 charset 参数,则其表示形式必须为 java.io.InputStreamjava.nio.ByteBuffer[B

要获取支持 charset 参数的文本 flavor 的列表,请参阅 selectBestTextFlavor

返回:
如果此 DataFlavor 为上述无效文本 flavor,则返回 true;否则返回 false
从以下版本开始:
1.4
另请参见:
selectBestTextFlavor(java.awt.datatransfer.DataFlavor[])

writeExternal

public void writeExternal(ObjectOutput os)
                   throws IOException
序列化此 DataFlavor

指定者:
接口 Externalizable 中的 writeExternal
参数:
os - 要写入对象的流
抛出:
IOException - 包含可能发生的所有 I/O 异常

readExternal

public void readExternal(ObjectInput is)
                  throws IOException,
                         ClassNotFoundException
从 Serialized 状态还原此 DataFlavor

指定者:
接口 Externalizable 中的 readExternal
参数:
is - 为了恢复对象而从中读取数据的流
抛出:
IOException - 如果发生 I/O 错误
ClassNotFoundException - 如果无法找到需要恢复的某个对象的类。

clone

public Object clone()
             throws CloneNotSupportedException
返回此 DataFlavor 的克隆。

覆盖:
Object 中的 clone
返回:
DataFlavor 的克隆
抛出:
CloneNotSupportedException - 如果对象的类不支持 Cloneable 接口,则重写 clone 方法的子类也会抛出此异常,以指示无法克隆某个实例。
另请参见:
Cloneable

normalizeMimeTypeParameter

@Deprecated
protected String normalizeMimeTypeParameter(String parameterName,
                                                       String parameterValue)
已过时。 

为每个 MIME 类型参数调用 DataFlavor 可以创建 DataFlavor 的子类,以处理特定参数,如文本/纯文本 charset 参数,其值是区分大小写的。(假定 MIME 类型参数值区分大小写。)

为每个参数名/值对调用此方法,应该返回 parameterValue 的标准化表示形式。 从版本 1.1 开始,此实现永远不再调用此方法了。


normalizeMimeType

@Deprecated
protected String normalizeMimeType(String mimeType)
已过时。 

为每个 MIME 类型字符串调用可以为 DataFlavor 子类型提供机会,以更改实现标准化 MIME 类型的方式。一种可能的使用情况是添加默认的参数/值对,以防在传入的 MIME 类型字符串中参数/值对不存在。 从版本 1.1 开始,此实现永远不再调用此方法了。


JavaTM 2 Platform
Standard Ed. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策