什么';java.lang.String.getBytes()和java.nio.charset.CharsetEncoder.encode()之间的区别是什么?
我正在通读的源代码,特别是:什么';java.lang.String.getBytes()和java.nio.charset.CharsetEncoder.encode()之间的区别是什么?,java,Java,我正在通读的源代码,特别是: 但是,我在JavaAPI中找不到StringCodeing.encode()方法。我希望能够将其与进行比较,因为该类/方法在String.getBytes()javadoc中作为替代引用。如何找到StringCodeing类及其源代码?各自的.encode()方法之间的区别是什么?区别在于使用CharsetEncoder可以选择失败的方式;这是一节课 默认情况下,String的.getBytes()使用REPLACE。然而,CharsetEncoder的大多数使用将
但是,我在JavaAPI中找不到StringCodeing.encode()方法。我希望能够将其与进行比较,因为该类/方法在String.getBytes()javadoc中作为替代引用。如何找到StringCodeing类及其源代码?各自的.encode()方法之间的区别是什么?区别在于使用
CharsetEncoder
可以选择失败的方式;这是一节课
默认情况下,String
的.getBytes()
使用REPLACE
。然而,CharsetEncoder
的大多数使用将报告
insead
您可以在末尾看到CodingErrorAction
用法的示例
REPORT
用法的一个示例是java.nio.file。至少在Unix系统上,从字符串创建的路径名将在写入磁盘之前进行编码;如果编码失败(例如,您使用和system charset US-ASCII),JDK将拒绝创建该文件,您将收到一个(未选中!)InvalidPathException
这与File
不同,后者将创建一个谁知道是什么的文件名,以及放弃它的另一个原因…请参阅(它不是一个公共类…)字符串编码的源代码在JDK中附带字符串。在IDE中,您可以使用+
导航到它。
public byte[] getBytes(Charset charset) {
if (charset == null) throw new NullPointerException();
return StringCoding.encode(charset, value, offset, count);
}