0

出于某种原因,此代码正在更改输入中的任何“\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();
  }
4

1 回答 1

1

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

只有当您使用例如BufferedReader#readLine()吃换行符并使用PrintWriter#println()附加平台默认换行符写入它时才会发生这种情况。大概是对方这样做了?毕竟,Reader/Writer不应该用于二进制数据。它可能会变形。使用InputStream/ OutputStream

于 2010-09-25T20:27:46.643 回答