复制二进制文件会将换行符更改为窗口的标准..? Java的

时间:2010-09-25 20:24:30

标签: java sockets file newline copying

出于某种原因,此代码正在更改输入中的任何“\ n”字符,并将其替换为新输出文件中的“\ n \ r”。 我引用了几个网站,但仍然没有想出来......任何人都有想法? 非常感谢!

Socket connectionSocket = sData.accept();
InputStream inputStream = connectionSocket.getInputStream();
BufferedInputStream inputBufferedStream = new BufferedInputStream(inputStream);
FileOutputStream outputStream = new FileOutputStream("/home/greg/1");


     byte[] buffer = new byte[1024];
     long count = 0;
     int n = 0;
     while ((n = inputBufferedStream.read(buffer))>=0) {
         outputStream.write(buffer, 0, n);
         count += n;
     }
    outputStream.close();
  }

1 个答案:

答案 0 :(得分:1)

特定代码没有这样做。可能那些\r\n只是已经在输入源中。

只有当您使用例如BufferedReader#readLine()来阅读它时才会发生这种情况,这会占用换行符并使用附加平台默认换行符的PrintWriter#println()来编写换行符。可能另一方正在这样做?毕竟,Reader / Writer不应用于二进制数据。它可能会使它变形。使用InputStream / OutputStream即可。