Possible Duplicate:
Best way to read structured binary files with Java
我曾经是c程序员。在c语言中,如果我想从std io传输二进制数据(而不仅仅是文本文件),我可以通过一遍又一遍地调用getchar()
和putchar()
直到到达EOF
来进行操作。
我的问题是,是否有可能在Java中执行相同的操作?我可以一次又一次地呼叫readline()
和writeline()
吗?如果没有,我该怎么办?
谢谢!
最佳答案
不,您绝对不能在readLine()
和writeLine()
调用中使用任何内容。这些用于文本数据。如果要传输二进制数据,则应使用InputStream
和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);
}
}