我正在测试FileInputStream,要读取文件的文本(dulo.txt),文件中的文本是(用ANSI表示):
HELLO WORLD
我已经使用了FileInputStream.read()方法,据我所知read()只能读取下一个字节,因为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
答案 0 :(得分:2)
Char是非unicode格式的1个字节。例如,ASCII格式表示只有1个字节的char。
答案 1 :(得分:0)
如果你想从文件中读/写字符,你可以使用Reader / Writer。贝娄我用简单的例子说明了如何使用Reader
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
public class TestReader {
private final static int SIZE = 200;
public static void main(String[] args) throws IOException {
Reader reader = new FileReader("1.txt");
char[] buf = new char[SIZE];
int count;
while((count = reader.read(buf)) != -1) {
for (int i = 0; i < count; i++)
System.out.println(buf[i]);
}
reader.close();
}
}