从文本文件Java读取行?

sav*_*24x 2 java file

所以我是Java的新手,我正在尝试的一切都没有用.有很多不同的方法可以从文件中读取,所以我想知道最简单的方法.基本上,它是一个疯狂的Libs应用程序.一种方法.我一直试图成功运行它,我在file.close()函数上得到一个错误.如果我拿走它,我会FileNotFoundException errors.所以我有点迷茫.我应该改变什么?

public static void main(String[] args) throws Exception {
    String[] nouns = new String[4];
    String[] verbs = new String[6];
    String[] adjectives = new String[7];
    Scanner s = new Scanner(System.in);
    System.out.println("Please input 4 nouns, press \"Enter\" after each input.");
    for(int i=0; i<4; i++){
        nouns[i] = s.next();
    }
    System.out.println("Please input 6 verbs, press \"Enter\" after each input.");
    for(int i=0; i<6; i++){
        verbs[i] = s.next();
    }
    System.out.println("Please input 7 adjectives, press \"Enter\" after each input.");
    for(int i=0; i<7; i++){
        adjectives[i] = s.next();
    }
    File file = null;
    FileReader fr = null;
    LineNumberReader lnr = null;

    try {
        file = new File("H:\\10GraceK\\AP Computer Science\\Classwork\\src\\madlib.txt");
        fr = new FileReader(file);           
        lnr = new LineNumberReader(fr);
        String line = "";           
        while ((line = lnr.readLine()) != null) {
            System.out.println(line);               
        }
    } finally {
        if (fr != null) {
            fr.close();
        }
        if (lnr != null) {
            lnr.close();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

好的,我修复了异常.现在文件中的文本读取了动词[0]和类似的东西,但它实际上输出了动词[0],而不是数组中的单词.如何将数组中的字符串附加到读取的字符串?

Rei*_*eus 6

该方法close未定义File.请FileReader.close改用.更换

file.close();
Run Code Online (Sandbox Code Playgroud)

fr.close();
Run Code Online (Sandbox Code Playgroud)

事实上,关闭LineNumberReader意志就足够了,因为这将关闭基础FileReader.你可以放在close一个finally街区.看这个例子