Lui*_*Sep 5 java outputstream file writer
我知道在编写文本时应该使用编写器而不是输出流,但我仍然不明白为什么outputStream.txt在运行此程序后文件中有额外的字符:
public static void main(String[] args) throws FileNotFoundException, IOException
{
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(new File("C:\\Data\\tmp\\outputStream.txt")));
oos.writeObject("SomeObject");
oos.writeUTF("SomeUTF");
oos.flush();
oos.close();
BufferedWriter writer = new BufferedWriter(new FileWriter(new File("C:\\Data\\tmp\\outputWriter.txt")));
writer.write("SomeObject");
writer.write("SomeUTF");
writer.flush();
writer.close();
}
Run Code Online (Sandbox Code Playgroud)
outputWriter.txt正如预期的那样,该文件是17字节,但是outputStream.txt是28,包括一些无法识别的文本.这是为什么?
ObjectOutputStream用于将Java对象写入流.这意味着不会将String的值写入流中; 相反,如果将写"下一个对象是a String,它的值是SomeObject".
因此,如果您需要纯文本文件,则必须使用WriterAPI.
注意:您的代码取决于平台.如果您想使其独立于平台,那么您必须使用:
FileOutputStream stream = new FileOutputStream( file );
return new BufferedWriter( new OutputStreamWriter( stream, Charset.forName("UTF-8") ) );
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2389 次 |
| 最近记录: |