Possible Duplicate:
Best way to read structured binary files with Java




我曾经是c程序员。在c语言中,如果我想从std io传输二进制数据(而不仅仅是文本文件),我可以通过一遍又一遍地调用getchar()putchar()直到到达EOF来进行操作。
我的问题是,是否有可能在Java中执行相同的操作?我可以一次又一次地呼叫readline()writeline()吗?如果没有,我该怎么办?
谢谢!

最佳答案

不,您绝对不能在readLine()writeLine()调用中使用任何内容。这些用于文本数据。如果要传输二进制数据,则应使用InputStreamOutputStream-名称中没有ReaderWriter的任何内容。如果将二进制数据转换为文本,几乎可以保证会丢失数据。

但是,您一次只能复制数据块:

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);
   }
}

09-16 00:24
查看更多