读取文件时从某一行创建变量

a0zr77ik  于 2021-08-20  发布在  Java
关注(0)|答案(1)|浏览(296)

**已关闭。**此问题需要调试详细信息。它目前不接受答案。
**想要改进此问题?**更新问题,使其位于堆栈溢出主题上。

21小时前关门。
改进这个问题
我正在编写一个简短的代码,它应该读取一个文件,识别第二行代码,并将其分配给一个变量,以便打印到控制台。但是,我在将变量设置为或设置为正确的字符串时遇到问题。在我尝试它的前几次,我收到第三行作为我的字符串变量。在对代码进行了一些调整之后,我现在收到null作为变量的返回值。我的代码是:

import java.io.File;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class A9 {

    public static String readSecondLine(String path) {
        File newfile = new File(path);
        String lineTwo = null;
        try(BufferedReader br = new BufferedReader(new FileReader(newfile))) {
            while((lineTwo = br.readLine()) != null) {
                br.readLine();
                for(int i = 0; i < 2; i++) {
                    if(i == 1) {
                        lineTwo = br.readLine();
                    }
                }
            }
        }
        catch(IOException ex) {
            ex.printStackTrace();
        }
        return lineTwo;
    }

    public static void main(String[] args) {
        String path = "/src/newtext.txt";
        System.out.println(readSecondLine(path));
    }

}

关于如何解决这个问题有什么想法吗?

ffx8fchx

ffx8fchx1#

您可以尝试使用java流api和skip()方法跳过文件的前n行。

public static String readSecondLine(String path) {
    File newfile = new File(path);
    String lineTwo = null;
    try (BufferedReader br = new BufferedReader(new FileReader(newfile))) {
        lineTwo = br.lines().skip(1).findFirst().orElse("There were no second line in file");
    }  catch (IOException ex) {
        ex.printStackTrace();
    }
    return lineTwo;
}

相关问题