【问题标题】:How to nextLine in a FileWriter and BufferedWriter, in java?如何在 Java 中的 FileWriter 和 BufferedWriter 中进行 nextLine?
【发布时间】:2018-04-16 08:19:08
【问题描述】:

我一直在尝试处理一些文件,但它永远不会进入下一行。 使用“\r\n”或者使用bufferedWriter,一开始我只使用fileWriter。

如何制作 nextLine() ?这些文件将在 Unix 上使用,我听说它与下一行识别的字符不同。

这是我的程序的样子:

try {

    File tempFile = new File(pathFiles + "tmp.txt");
    //System.out.println(tempFile);     //TEST
    FileWriter fw = new FileWriter(tempFile, true);
    BufferedWriter bw = new BufferedWriter(fw);
    Reader fr = new FileReader(fileOriginal);
    BufferedReader br = new BufferedReader(fr);

    String line = "";
    while ((line = br.readLine()) != null) {

        for (int i = 0; i < arrayToConvert.size(); i++) {
            line = line.replace(arrayToConvert.get(i),
                    arrayConverted.get(i));
        }
        //line += "\r\n";   
        //line += "\u240D";
        //System.getProperty("line.separator");
        //br.readLine().split("[\\r\\n]+");
        //br.write(line);
        bw.write(line);
        bw.newLine();


        //br.readLine().split("[\\r\\n]+");
        //line.split("[\\r\\n]+");
    }

    bw.close();
    fw.close();
    br.close();
    fr.close();

这是您需要的部分。在评论中,我已经尝试过。

感谢您的帮助。

【问题讨论】:

  • br.newLine() 应该可以工作并且与平台无关,但不应该在 for 循环中调用缓冲的写入器写入和换行符吗?还是我很困惑?我自己,我会使用 PrintWriter 的 println(...) 方法。
  • bw.newLine() 写入一个依赖于平台的换行符分隔符,它并不总是\r\n。你知道吗?
  • 你检查过文件的内容了吗?竟然看不出来人物?在操作系统上构建文件以在另一个操作系统中读取将不需要工作

标签: java filereader filewriter bufferedwriter


【解决方案1】:

将您的BufferedWriter 包装在PrintWriter 中并使用println() 方法。

PrintWriter pw = new PrintWriter(bw);

pw.println(line);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-03
    • 2019-06-08
    • 2013-07-27
    • 2012-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-29
    相关资源
    最近更新 更多