import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
FileReader fileReader1 = new FileReader("C:\\test\\input.txt");
FileInputStream fileInputStream1 = new FileInputStream("C:\\test\\input.txt");
FileReader fileReader2 = new FileReader("C:\\test\\abc.png");
FileInputStream fileInputStream2 = new FileInputStream("C:\\test\\abc.png");
int ab=fileReader1.read();
int bc=fileInputStream1.read();
int ab1=fileReader2.read();
int bc1=fileInputStream2.read();
System.out.println("reading a file : fileReader:"+ab+" fileInputStream:"+bc);
System.out.println("resding PNG : fileReader:"+ab1+" fileInputStream:"+bc1);
}
}
输出:
reading a file : fileReader:104 fileInputStream:104
resding PNG : fileReader:8240 fileInputStream:137
我正在使用FileReader和FileInputStream来读取txt文件并读取图像文件。我知道读取字节明智和其他char明智。但我没有得到这个ouptput。
答案 0 :(得分:1)
的FileReader:
阅读字符文件的便捷类。此类的构造函数假定默认字符编码和默认字节缓冲区大小是合适的。
的FileInputStream:
FileInputStream用于读取原始字节流,例如图像数据。要读取字符流,请考虑使用FileReader。
答案 1 :(得分:1)
PNG文件中的第一个字节是0x89或137十进制。 FileInputStream按原样报告字节,而FileReader假定它是Windows 1252代码页中的字符,并将其转换为相应的UTF-8字符代码,0x2030或8240十进制。 (这假设您在具有默认代码页1252的Windows计算机上运行代码。)