我需要读取由C ++进程编写的文件中的字符 这些字符肯定在ASCII范围内,但由于Java char是16位而C ++ char是8位,读取文件的最佳方法是什么?
我只知道C ++进程在ascii范围内写入字符如下:file<
答案 0 :(得分:1)
关键是指定文件编码。你可以使用:
File myFile = new File("file.txt");
BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(f),"ascii"));
答案 1 :(得分:0)
尝试使用Guavas Files Class。
public static void main(String[] args) {
try {
List<String> lines = Files.readLines(new File("filename"),
Charsets.UTF_8);
//get characters from lines
} catch (IOException e) {
logger.error(e, e);
}
}
您还可以尝试该课程中的其他Read方法,看看它们是否能为您提供服务。
答案 2 :(得分:0)
当您在Java中读取ascii文件时,它将在java中正确表示为16位字符。当您将java char写入文本文件时,只要您保持在ascii字符范围内,它就会以8位ASCII字符写入磁盘。
逐行读取文件的代码:
File file = new File("file.txt");
br = new BufferedReader(new FileReader(file));
String line = br.readLine();
while (line != null) {
// Do something with the line
line = br.readLine();
}