我有以下代码:
public static void main(String[] args) throws Exception {
FileInputStream inputStream = new FileInputStream("c:/data.txt");
FileOutputStream outputStream = new FileOutputStream("c:/result.txt");
while (inputStream.available() > 0) {
int data = inputStream.read();
outputStream.write(data);
}
inputStream.close();
outputStream.close();
}
我不明白以下话:
int data = inputStream.read();
获取文件c:/data.txt的字节,逐字节读取,然后在变量数据中自动串联,或者一次inputStream.read()
一次读取文件c:/data.txt
并分配一切都交给数据变量了吗?
答案 0 :(得分:4)
来自JavaDoc:
FileInputStream
从文件系统中的文件获取输入字节。
FileInputStream
用于读取原始字节流,例如图像数据。
要读取字符流,请考虑使用FileReader
问题::获取文件
c:/data.txt
的字节,逐字节读取,然后在变量中自动串联 数据或inputStream.read()
读取文件c:/data.txt
全部位于 一次并将所有内容分配给数据变量?
要回答这个问题,请举个例子:
try {
FileInputStream fin = new FileInputStream("c:/data.txt");
int i = fin.read();
System.out.print((char) i);
fin.close();
} catch (Exception e) {
System.out.println(e);
}
在运行上述程序之前,已创建一个data.txt
文件,其文本为:Welcome to Stackoverflow
。
执行上述程序后,控制台将打印单张
87
文件中的字符(字节形式),很清楚 指示FileInputStream#read
用于读取字节 输入流中的数据。
因此,FileInputStream
通过byte
读取数据byte
。