Java逐字符地读取utf-8编码文件

cor*_*ras 3 java

我有一个文件保存为utf-8(事实上由我的应用程序保存).你怎么逐字逐句地读它?

File file = new File(folder+name);
FileInputStream fis = new FileInputStream(file);
BufferedInputStream bis = new BufferedInputStream(fis);
DataInputStream dis = new DataInputStream(bis);
Run Code Online (Sandbox Code Playgroud)

这两个选项似乎是:

char c = dis.readByte()
char c = dis.readChar()
Run Code Online (Sandbox Code Playgroud)
  • 只要您只存储了ascii字符,即第一个选项,即英语.
  • 第二个选项将文件的第一个和第二个字节读作一个字符.

原始文件的编写如下:

File file = File.createTempFile("file", "txt");
FileWriter fstream = new FileWriter(file);
BufferedWriter out = new BufferedWriter(fstream);
Run Code Online (Sandbox Code Playgroud)

dma*_*oni 7

您不需要DataInputStream,用于读取原始字节.使用InputStreamReader,它允许您指定输入的编码(在您的情况下为UTF-8).