可能重复:
使用 Java 读取结构化二进制文件的最佳方法
我曾经是一名交流程序员。在c中,如果我想从std io传输二进制数据(不仅仅是文本文件),我可以通过一遍又一遍地调用getchar()
and来完成,直到到达. 我的问题是,在 Java 中可以这样做吗?我可以一遍又一遍地打电话吗?如果没有,我该怎么办?
谢谢!putchar()
EOF
readline()
writeline()
可能重复:
使用 Java 读取结构化二进制文件的最佳方法
我曾经是一名交流程序员。在c中,如果我想从std io传输二进制数据(不仅仅是文本文件),我可以通过一遍又一遍地调用getchar()
and来完成,直到到达. 我的问题是,在 Java 中可以这样做吗?我可以一遍又一遍地打电话吗?如果没有,我该怎么办?
谢谢!putchar()
EOF
readline()
writeline()
不,你绝对不readLine()
应该在andwriteLine()
调用中使用任何东西。这些用于文本数据。如果您正在传输二进制数据,您应该使用InputStream
and 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);
}
}