-1

可能重复:
使用 Java 读取结构化二进制文件的最佳方法

我曾经是一名交流程序员。在c中,如果我想从std io传输二进制数据(不仅仅是文本文件),我可以通过一遍又一遍地调用getchar()and来完成,直到到达. 我的问题是,在 Java 中可以这样做吗?我可以一遍又一遍地打电话吗?如果没有,我该怎么办? 谢谢!putchar()EOFreadline()writeline()

4

1 回答 1

5

不,你绝对readLine()应该在andwriteLine()调用中使用任何东西。这些用于文本数据。如果您正在传输二进制数据,您应该使用InputStreamand OutputStream- 名称中没有Reader或没有Writer。如果将二进制数据转换为文本,几乎肯定会丢失数据。

但是你可以一次只复制数据块:

public static void copy(InputStream input, OutputStream output)
    throws IOException {
   byte[] buffer = new byte[16 * 1024]; // For example...
   int bytesRead;
   while ((bytesRead = input.read(buffer)) > 0) {
     output.write(buffer, 0, bytesRead);
   }
}
于 2013-01-14T19:53:42.487 回答