已知限制
在使用双向支持时可能会遇到以下问题。
- 如果应用程序从文件读取不构成逻辑单元的文本片段或将此类片段写入文件,那么双向布局转换将产生意外的结果。 例如,一次读取或写入一个字符的应用程序不会从双向支持中获益。 未来的发行版中可能无法消除此局限性。
- 当无法映射的字符(在声明的代码页中无效的字符)出现在单字节字符集 (SBCS) 数据中时,它们可能会导致前一个和后一个数据彼此独立转换,而这可能会导致意想不到的结果。
- 当应用程序读取或写入跨输入或输出文件使用的缓冲区边界的文本单元(例如,一行)时,那么可能会针对位于每个缓冲区中的文本单元部分独立地执行双向转换,因而导致意想不到的结果。 当文件不是太大时,可通过将缓冲区大小设置为足以包含整个文件的值来避免出现此问题。 例如,可以在构造 BufferedInputStream 或 BufferedOutputStream 对象时指定缓冲区大小。