Java中文件中每行的调用方法

Java中文件中每行的调用方法,java,file-io,Java,File Io,我正在编写一个Java应用程序,它应该为文件中的每一行调用一个方法。然后打开一个自定义对话框。我正在使用此代码读取文件: List<String> lines = new ArrayList<String> (); String line = null; try { BufferedReader reader = new BufferedReader(new FileReader("test.ospt

我正在编写一个Java应用程序,它应该为文件中的每一行调用一个方法。然后打开一个自定义对话框。我正在使用此代码读取文件:

        List<String> lines = new ArrayList<String> ();
        String line = null;
        try {
            BufferedReader reader = new BufferedReader(new FileReader("test.ospt"));
            while((line = reader.readLine()) != null){
                lines.add(line) ;
            }
        } catch (Exception e1) {
            e1.printStackTrace();
        }

        for(String line1 : lines)
        {
           execute(line1);
         }
for(String line1 : lines)
{
execute(line1);
}
但在使用此for循环对文件的每一行调用execute()之后:

        List<String> lines = new ArrayList<String> ();
        String line = null;
        try {
            BufferedReader reader = new BufferedReader(new FileReader("test.ospt"));
            while((line = reader.readLine()) != null){
                lines.add(line) ;
            }
        } catch (Exception e1) {
            e1.printStackTrace();
        }

        for(String line1 : lines)
        {
           execute(line1);
         }
for(String line1 : lines)
{
execute(line1);
}

它将“line1”视为整个文件,我得到一个错误,因为execute无法读取整个文件。我是否可以将每一行输入execute()方法,而不是尝试读取整个文件?

要直接回答标题中的问题

如果您使用的是Java 8,则可以使用以下内容替换您的迭代:

lines.forEach(MyClass::execute);
或者更好的是,你可以直接从下面的行中调用:

Files.lines(Path.get(path)).forEachOrdered(MyClass::execute);

你在哪里使用
script
内部
execute
?在我看来,这就像是LF vs CR的问题。。。您使用的是什么操作系统,您使用的是哪种编辑器来制作文本文件?对不起,代码中有错误。txt.getText()必须是“script”。如果现在已经解决了这个问题,您可能应该删除这个问题,这样其他人就不会浪费时间处理它。我不知道为什么要将这些行放入列表中,然后遍历它们。为什么不在阅读每一行时调用execute呢?