Java chars vs C ++ chars from file

时间:2013-02-27 09:24:47

标签: java string file-io encoding ascii

我需要读取由C ++进程编写的文件中的字符 这些字符肯定在ASCII范围内,但由于Java char是16位而C ++ char是8位,读取文件的最佳方法是什么?

我只知道C ++进程在ascii范围内写入字符如下:file<

3 个答案:

答案 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();
}