将多条线组合成一条线

时间:2016-03-12 10:25:31

标签: java file replace io bufferedreader

我有一个文本文件,如下所示:

thiasisatest("test1", 
        "test2", 
        "test3", 
        "test4", 
        "test5");

我想要实现的输出是:

thiasisatest("test1", "test2", "test3", "test4", "test5");

我的代码如下所示:

import java.io.*;

public class IoTest {

    public static void main(String[] args) {

        BufferedReader br = null;

        try {

            String sCurrentLine;

            br = new BufferedReader(new FileReader("/Applications/textfile.txt"));

            while ((sCurrentLine = br.readLine()) != null) {

                System.out.println(sCurrentLine.trim().replace("\n", ""));
            }

        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (br != null)br.close();
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }

    }

}

我正在读取该行并替换while循环中的所有行,但是当我尝试打印字符串时,输出不会改变并且行仍然存在。

我做错了什么?

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

System.out.println

终止该行,这就是你获得多行的原因。

答案 1 :(得分:1)

你实际上不需要更换线路;因为你在技术上是逐行回忆的。

您需要做的就是创建一个StringBuilder,您可以从缓冲读取器中追加每一行。

您的代码应如下所示

String sCurrentLine;

StringBuilder builder = new StringBuilder();
while ((sCurrentLine = br.readLine()) != null){
    builder.append(sCurrentLine);
}

您现在可以将“构建器”的内容输出到另一个文件。