【发布时间】:2013-07-04 22:39:43
【问题描述】:
我正在测试FileInputStream,读取文件的文本(dulo.txt),文件中的文本是(ANSI):
你好世界
我使用了 FileInputStream.read() 方法,据我所知 read() 只能读取下一个 byte 并且因为 char 是 2 个字节该程序如何工作?它不应该崩溃吗?
这是我的代码:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
class Collections {
public static void main(String args[]) throws IOException {
FileInputStream fis= new FileInputStream(new File("dulO.txt"));
int spazioByte=fis.available();
for(int i=0; i<spazioByte;i++){
System.out.println("Byte: "+i+" :"+(char)fis.read());
}
}
}
控制台输出:
Byte: 0 :H
Byte: 1 :E
Byte: 2 :L
Byte: 3 :L
Byte: 4 :O
Byte: 5 :
Byte: 6 :W
Byte: 7 :O
Byte: 8 :R
Byte: 9 :L
Byte: 10 :D
【问题讨论】:
-
这取决于文件的编码。它是什么?我猜是 ASCII 或 UTF-8...
-
除非指定,
.txt文件是 ANSI 编码的,每个字符 8 位(1 个字节)。 -
是的,我已经将它保存在 ANSI 中
标签: java char byte fileinputstream