Java如何逐行将特有的字符串写入Txt文件(Tesseract输出)

时间:2018-07-08 11:25:28

标签: java file tesseract

我需要将结果字符串逐行打印到TXT文件中。 这是我的代码:

        try {

        String result = instance.doOCR(imageFile);
        FileWriter writer = new FileWriter("C:\\testfiles\\enes.txt");
        try(PrintWriter printWriter = new PrintWriter(writer)){
                //printWriter.write(result);
                printWriter.println(result);
}
        System.out.println(result);
    } catch (Exception e) {
        System.err.println(e.getCause());
    }

我的控制台输出也是如此:

İbrahimEnes ALAN

Küçükbakkalköy,2. Hazine Sk。,34750Ataşehir/İstanbulEfo Academic Aparts 电话编号:(542)6299228

电子邮件:en@ozu.edu.tr / en@hotmail.c0m

您可以看到我的控制台输出是逐行打印的,但是在txt文件中,所有单词都在一行中,我如何像控制台输出一样打印。 你有什么建议吗?感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

您需要调用printWriter.write("\r\n");printWriter.write(System.lineSeparator())取决于您的操作系统

try {

    String result = instance.doOCR(imageFile);
    FileWriter writer = new FileWriter("C:\\testfiles\\enes.txt");
    try(PrintWriter printWriter = new PrintWriter(writer)){
    printWriter.write(result);
    printWriter.write("\r\n");
}
   System.out.println(result);
} catch (Exception e) {
        System.err.println(e.getCause());
}

答案 1 :(得分:1)

Tesseract返回的字符串已包含以EOL字符\n分隔的行。在Windows上,它们将显示为一行。您需要将其替换为Windows EOL字符\r\n