类 DataFlavor

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

public class DataFlavor extends Object implements Externalizable , Cloneable
DataFlavor 提供有关数据的元信息。 DataFlavor 通常用于访问剪贴板上的数据,或在拖放操作期间。

DataFlavor 的实例封装了 RFC 2045RFC 2046 中定义的内容类型。内容类型通常称为 MIME 类型。

内容类型由媒体类型(称为主要类型)、子类型和可选参数组成。有关 MIME 类型语法的详细信息,请参阅 RFC 2045

JRE 数据传输实现将 MIME 类型的参数“类”解释为表示类.表示类别反映了正在传输的对象的类别。换句话说,表示类是 Transferable.getTransferData(java.awt.datatransfer.DataFlavor) 返回的对象类型。例如,imageFlavor 的 MIME 类型是 "image/x-java-image;class=java.awt.Image",主要类型是 image,子类型是 x-java-image,表示类是 java.awt.Image。当使用 imageFlavorDataFlavor 调用 getTransferData 时,将返回 java.awt.Image 的实例。重要的是要注意 DataFlavor 不会针对表示类进行错误检查。 DataFlavor 的使用者(例如 Transferable )是否尊重表示类。
请注意,如果您在创建 DataFlavor 时未指定表示类,则使用默认表示类。请参阅 DataFlavor 的构造函数的相应文档。

此外,DataFlavor 具有“文本”主要 MIME 类型的实例可能有一个“字符集”参数。有关“文本”MIME 类型和“字符集”参数的详细信息,请参阅 RFC 2046selectBestTextFlavor(java.awt.datatransfer.DataFlavor[])

DataFlavors 的相等性由主要类型、子类型和表示类决定。有关详细信息,请参阅 equals(DataFlavor) 。在确定相等性时,将忽略任何可选参数。例如,以下生成两个被认为相同的 DataFlavors

  DataFlavor flavor1 = new DataFlavor(Object.class, "X-test/test; class=<java.lang.Object>; foo=bar");
  DataFlavor flavor2 = new DataFlavor(Object.class, "X-test/test; class=<java.lang.Object>; x=y");
  // The following returns true.
  flavor1.equals(flavor2);
 
如前所述,flavor1flavor2 被认为是相同的。因此,向 Transferable 询问 DataFlavor 会返回相同的结果。

有关使用 Swing 进行数据传输的更多信息,请参阅 如何使用拖放和数据传输 中的 The Java Tutorial 部分。

自从:
1.1
参见:
  • 字段详细信息

    • 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"
       
      如果 java.awt.Image 不可见、java.desktop 模块未加载或 java.desktop 模块不在运行时映像中,则为 null
    • plainTextFlavor

      @Deprecated public static final DataFlavor  plainTextFlavor
      已弃用。
      从 1.3 开始。使用 getReaderForText(java.awt.datatransfer.Transferable) 而不是 Transferable.getTransferData(DataFlavor.plainTextFlavor)
      DataFlavor 表示使用 Unicode 编码的纯文本,其中:
         representationClass = InputStream
         mimeType      = "text/plain; charset=unicode"
       
      这个 DataFlavor 已被弃用因为:
      • 它的表示是一个 InputStream,一个基于 8 位的表示,而 Unicode 是一个 16 位的字符集
      • 字符集“unicode”没有明确定义。 “unicode”表示特定平台的 Unicode 实现,而不是跨平台实现
    • javaSerializedObjectMimeType

      public static final String  javaSerializedObjectMimeType
      application/x-java-serialized-object 的 MIME 内容类型表示已持久化的 Java 对象图。

      与此 DataFlavor 关联的表示类标识从调用 java.awt.datatransfer.getTransferData 返回为引用的对象的 Java 类型。

      参见:
    • javaFileListFlavor

      public static final DataFlavor  javaFileListFlavor
      要将文件列表传输到 Java(和底层平台),使用这种类型/子类型的 DataFlavorjava.util.List 的表示类。列表中的每个元素都需要/保证为 java.io.File 类型。
    • javaJVMLocalObjectMimeType

      public static final String  javaJVMLocalObjectMimeType
      要在同一 JVM 中跨 Transferable 接口传输对没有关联 MIME 内容类型的任意 Java 对象引用的引用,使用具有此类型/子类型的 DataFlavor,其中 representationClass 等于类/接口的类型穿过 Transferable

      Transferable.getTransferData 为具有此 MIME 内容类型的 DataFlavor 返回的对象引用必须是 DataFlavor 的表示类的实例。

      参见:
    • javaRemoteObjectMimeType

      public static final String  javaRemoteObjectMimeType
      为了通过拖放 ACTION_LINK 操作将实时链接传递到远程对象,应使用 application/x-java-remote-object 的 Mime 内容类型,其中 DataFlavor 的表示类表示 Remote 接口的类型被转移。
      参见:
    • selectionHtmlFlavor

      public static final DataFlavor  selectionHtmlFlavor
      表示一段 HTML 标记。标记由在源端选择的部分组成。因此,标记中的某些标签可能未配对。如果使用 flavor 表示Transferable 实例中的数据,则不会进行额外的更改。此 DataFlavor 实例表示与 DataFlavor 实例相同的 HTML 标记,其内容 MIME 类型不包含文档参数,表示类是 String 类。
         representationClass = String
         mimeType      = "text/html"
       
      自从:
      1.8
    • fragmentHtmlFlavor

      public static final DataFlavor  fragmentHtmlFlavor
      表示一段 HTML 标记。如果可能,将从本机系统接收到的标记添加成对标记以成为格式良好的 HTML 标记。如果使用 flavor 表示Transferable 实例中的数据,则不会进行额外的更改。
         representationClass = String
         mimeType      = "text/html"
       
      自从:
      1.8
    • allHtmlFlavor

      public static final DataFlavor  allHtmlFlavor
      表示一段 HTML 标记。如果可能,将从本机系统接收到的标记用附加标记进行补充,以构成格式良好的 HTML 文档。如果使用 flavor 表示Transferable 实例中的数据,则不会进行额外的更改。
         representationClass = String
         mimeType      = "text/html"
       
      自从:
      1.8
  • 构造方法详细信息

    • 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 - 以这种方式传输数据的类
      humanPresentableName - 用于识别此风味的人类可读字符串;如果此参数为 null,则使用 MIME 内容类型的值
      抛出:
      NullPointerException - 如果 representationClassnull
    • 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 - 用于标识此风味的 MIME 类型的字符串;如果 mimeType 未指定“class=”参数,或者类未成功加载,则抛出 IllegalArgumentException
      humanPresentableName - 用于识别此风味的人类可读字符串;如果此参数为 null,则使用 MIME 内容类型的值
      抛出:
      IllegalArgumentException - 如果 mimeType 无效或类未成功加载
      NullPointerException - 如果 mimeTypenull
    • 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 - 用于标识此风味的 MIME 类型的字符串
      humanPresentableName - 用于识别此风味的人类可读字符串
      classLoader - 要使用的类加载器
      抛出:
      ClassNotFoundException - 如果类未加载
      IllegalArgumentException - 如果 mimeType 无效
      NullPointerException - 如果 mimeTypenull
    • DataFlavor

      public DataFlavor(String  mimeType) throws ClassNotFoundException
      mimeType 字符串构造 DataFlavor。该字符串可以指定一个“class=<fully specified Java class name>”参数来创建一个具有所需表示类的DataFlavor。如果字符串不包含“class=”参数,java.io.InputStream 将用作默认值。
      参数:
      mimeType - 用于标识此风味的 MIME 类型的字符串;如果“class=”参数指定的类未成功加载,则抛出ClassNotFoundException
      抛出:
      ClassNotFoundException - 如果类未加载
      IllegalArgumentException - 如果 mimeType 无效
      NullPointerException - 如果 mimeTypenull
  • 方法详情

    • tryToLoadClass

      protected static final Class <?> tryToLoadClass(String  className, ClassLoader  fallback) throws ClassNotFoundException
      尝试从以下位置加载一个类:引导加载程序、系统加载程序、上下文加载程序(如果存在)和最后指定的加载程序。
      参数:
      className - 要加载的类的名称
      fallback - 后备加载程序
      返回:
      加载的类
      抛出:
      ClassNotFoundException - 如果找不到类
    • toString

      public String  toString()
      DataFlavor 及其参数的字符串表示形式。生成的 String 包含 DataFlavor 类的名称、此风格的 MIME 类型及其表示类。如果此 flavor 的主要 MIME 类型为“文本”,支持 charset 参数,并且具有编码表示,则还包括 flavor 的 charset。请参阅 selectBestTextFlavor 以获取支持 charset 参数的文本风格列表。
      重写:
      toString 在类 Object
      返回:
      这个 DataFlavor 的字符串表示
      参见:
    • getTextPlainUnicodeFlavor

      public static final DataFlavor  getTextPlainUnicodeFlavor()
      返回一个 DataFlavor 表示使用 Unicode 编码的纯文本,其中:
         representationClass = java.io.InputStream
         mimeType      = "text/plain;
                    charset=<platform default Unicode encoding>"
       
      实现注意事项:
      Oracle 针对 Microsoft Windows 和 macOS 的实现使用编码 utf-16le 。 Oracle 的 Solaris 和 Linux 实现使用编码 iso-10646-ucs-2
      返回:
      一个 DataFlavor 表示使用 Unicode 编码的纯文本
      自从:
      1.3
    • selectBestTextFlavor

      public static final DataFlavor  selectBestTextFlavor(DataFlavor [] availableFlavors)
      DataFlavor 数组中选择最佳文本 DataFlavor。只有 DataFlavor.stringFlavor 和等效的风格,以及具有主要 MIME 类型“文本”的风格,才会被考虑用于选择。

      风味首先按以下顺序按其 MIME 类型排序:

      • “文本/sgml”
      • “文本/xml”
      • “文本/html”
      • “文本/RTF”
      • “文本/丰富”
      • “文本/富文本”
      • “文本/uri列表”
      • “文本/制表符分隔值”
      • "text/t140"
      • “文本/rfc822-headers”
      • “文本/parityfec”
      • "text/directory"
      • “文本/CSS”
      • “文本/日历”
      • “应用程序/x-java-序列化对象”
      • “文本/纯文本”
      • "text/<other>"

      例如,“text/sgml”将被选中而不是“text/html”,而 DataFlavor.stringFlavor 将被选中而不是 DataFlavor.plainTextFlavor

      如果两个或多个风格共享数组中的最佳 MIME 类型,则将检查该 MIME 类型以查看它是否支持 charset 参数。

      以下 MIME 类型支持或被视为支持字符集参数:

      • “文本/sgml”
      • “文本/xml”
      • “文本/html”
      • “文本/丰富”
      • “文本/富文本”
      • “文本/uri列表”
      • "text/directory"
      • “文本/CSS”
      • “文本/日历”
      • “应用程序/x-java-序列化对象”
      • “文本/纯文本”
      以下 MIME 类型不支持或被视为不支持字符集参数:
      • “文本/RTF”
      • “文本/制表符分隔值”
      • "text/t140"
      • “文本/rfc822-headers”
      • “文本/parityfec”
      对于“text/<other>”MIME 类型,JRE 第一次需要确定 MIME 类型是否支持 charset 参数时,它将检查该参数是否明确列在任意选择的使用该 MIME 类型的 DataFlavor 中。如果是这样,JRE 将从那时起假定 MIME 类型支持 charset 参数并且不会再次检查。如果未明确列出参数,则 JRE 将从那时起假定 MIME 类型不支持字符集参数,并且不会再次检查。由于此检查是在任意选择的 DataFlavor 上执行的,因此开发人员必须确保所有具有“text/<other>”MIME 类型的 DataFlavor 指定 charset 参数(如果该 MIME 类型支持该参数)。开发人员永远不应依赖 JRE 将平台的默认字符集替换为“text/<other>”DataFlavor。不遵守此限制将导致未定义的行为。

      如果数组中最好的 MIME 类型不支持 charset 参数,则共享该 MIME 类型的 flavors 将按照它们的表示类按以下顺序排序:java.io.InputStreamjava.nio.ByteBuffer[B、<all others>。

      如果两种或多种风味共享最佳表示类别,或者如果没有风味具有三种指定表示之一,则将不确定地选择其中一种风味。

      如果数组中最好的 MIME 类型确实支持 charset 参数,则共享该 MIME 类型的 flavor 将按照它们的表示类按以下顺序排序:java.io.Readerjava.lang.Stringjava.nio.CharBuffer[C、<所有其他>。

      如果两种或多种口味共享最佳表示类别,并且该表示是明确列出的四种口味之一,那么将不确定地选择其中一种口味。但是,如果没有一种风味具有四种指定表示形式中的一种,则风味将按其字符集排序。 Unicode 字符集,例如“UTF-16”、“UTF-8”、“UTF-16BE”、“UTF-16LE”,以及它们的别名,被认为是最好的。在它们之后,选择平台默认字符集及其别名。 “US-ASCII”及其别名最糟糕。所有其他字符集都按字母顺序选择,但只会考虑此 Java 平台实现支持的字符集。

      如果两种或多种风味共享最佳字符集,则风味将再次按以下顺序按其表示类排序:java.io.InputStreamjava.nio.ByteBuffer[B、<所有其他>。

      如果两种或多种风味共享最佳表示类别,或者如果没有风味具有三种指定表示之一,则将不确定地选择其中一种风味。

      参数:
      availableFlavors - 可用 DataFlavor 的数组
      返回:
      根据上面指定的规则的最佳(最高保真度)风味,或 null ,如果 availableFlavorsnull ,长度为零,或不包含文本风味
      自从:
      1.3
    • getReaderForText

      public Reader  getReaderForText(Transferable  transferable) throws UnsupportedFlavorException , IOException
      获取文本风格的阅读器,如有必要,解码为预期的字符集(编码)。支持的表示类是 java.io.Readerjava.lang.Stringjava.nio.CharBuffer[Cjava.io.InputStreamjava.nio.ByteBuffer[B

      由于不支持 charset 参数的文本风格以非标准格式编码,因此不应为此类风格调用此方法。但是,为了保持向后兼容性,如果为此类风格调用此方法,则此方法会将此风格视为支持字符集参数,并尝试相应地对其进行解码。有关不支持 charset 参数的文本风格列表,请参阅 selectBestTextFlavor

      参数:
      transferable - 将以这种方式请求其数据的 Transferable
      返回:
      a Reader 读取 Transferable 的数据
      抛出:
      IllegalArgumentException - 如果表示类不是上面列出的七个之一
      IllegalArgumentException - 如果 Transferablenull 数据
      NullPointerException - 如果 Transferablenull
      UnsupportedEncodingException - 如果这种风格的表示是 java.io.InputStreamjava.nio.ByteBuffer[B 并且这种风格的编码不受此 Java 平台实现的支持
      UnsupportedFlavorException - 如果 Transferable 不支持这种风格
      IOException - 如果由于 I/O 错误而无法读取数据
      自从:
      1.3
      参见:
    • getMimeType

      public String  getMimeType()
      返回此 DataFlavor 的 MIME 类型字符串。
      返回:
      此风格的 MIME 类型字符串
    • getRepresentationClass

      public Class <?> getRepresentationClass()
      返回 Class 支持此 DataFlavor 的对象将在请求此 DataFlavor 时返回。
      返回:
      Class 支持此 DataFlavor 的对象将在请求此 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 - 请求的参数名称
      返回:
      name 参数的值,如果没有关联值则为 null
    • setHumanPresentableName

      public void setHumanPresentableName(String  humanPresentableName)
      为这个 DataFlavor 代表的数据格式设置人类可表达的名称。此名称将针对不同的国家/地区进行本地化。
      参数:
      humanPresentableName - 新的人类形象名称
    • equals

      public boolean equals(Object  o)
      指示某个其他对象是否“等于”这个对象。

      equals 方法在非空对象引用上实现等价关系:

      • 这是反身的:对于任何非空参考值 xx.equals(x) 应该返回 true
      • 这是对称的:对于任何非空参考值 xy,当且仅当 y.equals(x) 返回 true 时,x.equals(y) 应返回 true
      • 这是transitive:对于任何非空引用值 xyz ,如果 x.equals(y) 返回 true 并且 y.equals(z) 返回 true ,那么 x.equals(z) 应该返回 true
      • 这是持续的:对于任何非空引用值 xyx.equals(y) 的多次调用一致地返回 true 或一致地返回 false ,前提是在对象的 equals 比较中使用的信息没有被修改。
      • 对于任何非空参考值 xx.equals(null) 应该返回 false

      等价关系将其操作的元素划分为等价类;等价类的所有成员彼此相等。等价类的成员可以相互替代,至少出于某些目的。

      DataFlavor 类的相等比较实现如下:当且仅当它们的 MIME 主要类型和子类型以及表示类相等时,两个 DataFlavor 被认为是相等的。此外,如果主要类型是“文本”,子类型表示支持 charset 参数的文本风格,并且表示类不是 java.io.Readerjava.lang.Stringjava.nio.CharBuffer[C,则 charset 参数也必须相等。如果没有为一个或两个 DataFlavor 明确指定字符集,则假定平台默认编码。请参阅 selectBestTextFlavor 以获取支持 charset 参数的文本风格列表。

      重写:
      equals 在类 Object
      参数:
      o - 与 this 比较的 Object
      返回:
      true 如果 that 相当于这个 DataFlavorfalse否则
      参见:
    • equals

      public boolean equals(DataFlavor  that)
      此方法与 equals(Object) 具有相同的行为。唯一的区别是它需要一个 DataFlavor 实例作为参数。
      参数:
      that - 与 this 比较的 DataFlavor
      返回:
      true 如果 that 相当于这个 DataFlavorfalse否则
      参见:
    • equals

      @Deprecated public boolean equals(String  s)
      已弃用。
      由于与hashCode()合约不一致,改用isMimeTypeEqual(String)
      仅将 mimeType 与传入的 String 进行比较,比较中不考虑 representationClass。如果需要比较 representationClass,则可以使用 equals(new DataFlavor(s))
      参数:
      s - 要比较的 mimeType
      返回:
      true 如果字符串 (MimeType) 相等; false 否则或如果 snull
    • hashCode

      public int hashCode()
      返回此 DataFlavor 的哈希码。对于两个相等的 DataFlavor ,哈希码是相等的。对于匹配DataFlavor.equals(String)String,不能保证DataFlavor的哈希码等于String的哈希码。
      重写:
      hashCode 在类 Object
      返回:
      这个 DataFlavor 的哈希码
      参见:
    • match

      public boolean match(DataFlavor  that)
      equals(DataFlavor) 相同。
      参数:
      that - 与 this 比较的 DataFlavor
      返回:
      true 如果 that 相当于这个 DataFlavorfalse否则
      自从:
      1.3
      参见:
    • isMimeTypeEqual

      public boolean isMimeTypeEqual(String  mimeType)
      返回传入的 MIME 类型的字符串表示是否等效于此 DataFlavor 的 MIME 类型。参数不包括在比较中。
      参数:
      mimeType - MIME 类型的字符串表示
      返回:
      true 如果传入的 MIME 类型的字符串表示等同于这个 DataFlavor 的 MIME 类型; false否则
      抛出:
      NullPointerException - 如果 mimeType 是 null
    • isMimeTypeEqual

      public final boolean isMimeTypeEqual(DataFlavor  dataFlavor)
      比较两个 DataFlavor 对象的 mimeType。不考虑任何参数。
      参数:
      dataFlavor - 要比较的 DataFlavor
      返回:
      true 如果 MimeType 相等,否则 false
    • isMimeTypeSerializedObject

      public boolean isMimeTypeSerializedObject()
      DataFlavor 是否代表序列化对象?
      返回:
      是否表示序列化对象
    • getDefaultRepresentationClass

      public final Class <?> getDefaultRepresentationClass()
      返回默认表示类。
      返回:
      默认表示类
    • getDefaultRepresentationClassAsString

      public final String  getDefaultRepresentationClassAsString()
      返回默认表示类的名称。
      返回:
      默认表示类的名称
    • isRepresentationClassInputStream

      public boolean isRepresentationClassInputStream()
      DataFlavor 代表 java.io.InputStream 吗?
      返回:
      这个 DataFlavor 是否代表一个 java.io.InputStream
    • isRepresentationClassReader

      public boolean isRepresentationClassReader()
      返回此 DataFlavor 的表示类是否为 java.io.Reader 或其子类。
      返回:
      DataFlavor 的表示类是否为 java.io.Reader 或其子类
      自从:
      1.4
    • isRepresentationClassCharBuffer

      public boolean isRepresentationClassCharBuffer()
      返回此 DataFlavor 的表示类是否为 java.nio.CharBuffer 或其子类。
      返回:
      DataFlavor 的表示类是否为 java.nio.CharBuffer 或其子类
      自从:
      1.4
    • isRepresentationClassByteBuffer

      public boolean isRepresentationClassByteBuffer()
      返回此 DataFlavor 的表示类是否为 java.nio.ByteBuffer 或其子类。
      返回:
      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 表示序列化对象
    • isFlavorRemoteObjectType

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

      public boolean isFlavorJavaFileListType()
      如果指定的 DataFlavor 表示文件对象列表,则返回 true
      返回:
      true 如果指定的 DataFlavor 表示 java.io.File 个对象的 java.util.List
    • isFlavorTextType

      public boolean isFlavorTextType()
      返回此 DataFlavor 是否是此 Java 平台实现的有效文本风格。只有等同于 DataFlavor.stringFlavorDataFlavor 的主要 MIME 类型为“文本”的风格才能是有效的文本风格。

      如果此 flavor 支持 charset 参数,则它必须等效于 DataFlavor.stringFlavor ,或者它的表示必须是 java.io.Readerjava.lang.Stringjava.nio.CharBuffer[Cjava.io.InputStreamjava.nio.ByteBuffer[B 。如果表示是 java.io.InputStreamjava.nio.ByteBuffer[B ,那么 Java 平台的这个实现必须支持这种风格的 charset 参数。如果未指定字符集,则假定始终支持的平台默认字符集。

      如果此风格不支持字符集参数,则其表示必须是 java.io.InputStreamjava.nio.ByteBuffer[B

      请参阅 selectBestTextFlavor 以获取支持 charset 参数的文本风格列表。

      返回:
      true 如果这个 DataFlavor 是如上所述的有效文本风格; false否则
      自从:
      1.4
      参见:
    • writeExternal

      public void writeExternal(ObjectOutput  os) throws IOException
      序列化这个 DataFlavor
      指定者:
      writeExternal 在接口 Externalizable
      参数:
      os - 将对象写入的流
      抛出:
      IOException - 包括可能发生的任何 I/O 异常
    • readExternal

      public void readExternal(ObjectInput  is) throws IOException , ClassNotFoundException
      从序列化状态恢复此 DataFlavor
      指定者:
      readExternal 在接口 Externalizable
      参数:
      is - 从中读取数据以恢复对象的流
      抛出:
      IOException - 如果发生 I/O 错误
      ClassNotFoundException - 如果找不到正在恢复的对象的类。
    • clone

      public Object  clone() throws CloneNotSupportedException
      返回此 DataFlavor 的克隆。
      重写:
      clone 在类 Object
      返回:
      这个DataFlavor的克隆
      抛出:
      CloneNotSupportedException - 如果对象的类不支持 Cloneable 接口。覆盖 clone 方法的子类也可以抛出此异常以指示无法克隆实例。
      参见:
    • normalizeMimeTypeParameter

      @Deprecated protected String  normalizeMimeTypeParameter(String  parameterName, String  parameterValue)
      已弃用。
      从 1.1 开始,此实现永远不会调用此方法
      为每个 MIME 类型参数调用 DataFlavor 以允许 DataFlavor 子类处理特殊参数,如 text/plain charset 参数,其值不区分大小写。 (MIME 类型参数值应该区分大小写。

      为每个参数名称/值对调用此方法,并应返回 parameterValue 的规范化表示。

      参数:
      parameterName - 参数名称
      parameterValue - 参数值
      返回:
      参数值
    • normalizeMimeType

      @Deprecated protected String  normalizeMimeType(String  mimeType)
      已弃用。
      从 1.1 开始,此实现永远不会调用此方法
      为每个 MIME 类型字符串调用,为 DataFlavor 子类型提供机会来更改 MIME 类型规范化的完成方式。一种可能的用途是在传入的 MIME 类型字符串中不存在默认参数/值对的情况下添加默认参数/值对。
      参数:
      mimeType - MIME 类型
      返回:
      哑剧类型