在java中传输二进制文件(数据)

Jun*_*ang -1 c java file

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

我曾经是交流程序员.在c中,如果我想从std io传输二进制数据(不仅仅是文本文件),我可以通过调用getchar()putchar()反复进行,直到达到EOF.我的问题是,在Java中可以采用相同的方式吗?我可以叫readline()writeline()了一遍又一遍?如果没有,我该怎么办?
谢谢!

Jon*_*eet 5

不,你绝对应该使用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);
   }
}
Run Code Online (Sandbox Code Playgroud)