繁体   English   中英

在 Java 中逐行读取文本文件

[英]Reading from text file line by line in Java

如何逐行读取文本文件中的内容? 当我尝试输出内容时,换行符似乎从阅读中被忽略。

public class ReadFile {
    public static void main(String[] args) throws IOException {
        // TODO Auto-generated method stub
        String str= "";

        //Reading content from file
        Scanner in = new Scanner(new FileReader("text.txt"));
        while(in.hasNextLine()){
            str = str + in.nextLine();
            str.concat("\n");      //Not working!!!!!!!!!!!
        }

        in.close();

        //Writing content to another file
        PrintWriter out = new PrintWriter(new FileWriter("output.txt"));
        out.println(str);
        out.close();
    }
}

您在以下行中犯了错误:

str.concat("\n"); 

更新如下:

str = str.concat("\n"); 

我正在提供更新的程序。

public class ReadFile {

    public static void main(String[] args) throws IOException {
        try (PrintWriter out = new PrintWriter(new FileWriter("output.txt"));
                Scanner in = new Scanner(new FileReader("text.txt"));) {
            while (in.hasNextLine()) {
                out.println(in.nextLine());
            }
        }
    }
}

您需要在 concat 操作后将字符串设置为新值。

str = str.concat("\n"); // or \r\n for Windows.

您正在连接效率不高的字符串; 使用 StringBuilder,也使用平台无关的行终止符。

试试这个:

public class ReadFile {

    public static void main(String[] args) throws IOException {

        String str= "";

        //Reading content from file
        Scanner in = new Scanner(new FileReader("text.txt"));
        StringBuilder str  = new StringBuilder();
        String newLine = System.getProperty("line.separator");
        while(in.hasNextLine()){            
            str.append(in.nextLine()).append(newLine);
        }

        in.close();

        //Writing content to another file
        PrintWriter out = new PrintWriter(new FileWriter("output.txt"));
        out.println(str.toString());
        out.close();
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM