晚上好,今天我遇到了一个奇怪的情况,当我使用Print Writer将文件上传到服务器时,文件被转移我尝试使用FileOutPutStream
而不是它解决了问题,我的问题是为什么{{ 1}}做了那种奇怪的行为,这里是我上传文件并将其保存在服务器上的代码:
PrintWriter
答案 0 :(得分:3)
您需要了解Writers和OutputStreams之间的区别。 PrintWriter.write(int)
正在编写字符,而FileOutputStream.write(int)
正在编写字节。你不小心将字节转换为字符,这破坏了你的文件。一般来说,当只是复制流时,你想要坚持使用字节。
答案 1 :(得分:1)
PrintWriter
将使用默认编码创建一个Writer,而FileOutputStream将简单地写出原始字节。如果您的原始内容和服务器端使用相同的编码,那么写入字节并重新解释它们就不会有问题。但是,当您使用PrintWriter
时,会使用默认的系统编码,这可能会破坏您的数据。