Java扫描器读取的文本文件较小,但不大

时间:2019-01-07 12:11:26

标签: java java.util.scanner

我有一项家庭作业,您应该能够在其中搜索文本文档(您的电影数据库),例如“ sta”,然后打印其中包含子字符串“ sta”的所有电影。尽管直到数据库中的电影数量超过6部,它都可以正常工作,但它根本不显示任何结果。

带有另一个类的Java文件1

public void sökTitel() {
    System.out.print("Ange sökord: ");
    String titel = scanner.nextLine().toUpperCase().trim();
            Lästitelfrånfil.läsTitel(titel);    
}

java文件2

enter code here

package labb5;
import java.io.*;
import java.util.*;
public class Lästitelfrånfil {
    public static void läsTitel (String titel) {
        File fil =new File("filmdatabas.txt");
        Scanner in;
        try {
            in = new Scanner(fil);
            while(in.hasNext()) {
                String line = in.nextLine();
                if(line.contains (titel))
                    System.out.println("Titel: " + (line.substring(0, line.length()-1)) + 
                        " Betyg: " + line.substring(line.length()-1, line.length()) + "/5");
            }
            in.close();
        } 
        catch (FileNotFoundException e) {  
        } 
    }
}

文本文件

STAR WARS 1 4
STAR WARS 2 2
STAR WARS 3 4
STAR WARS 4 3
BATMAN THE DARK KNIGHT 5

如果我在文本文件中仅搜索5部电影的“ sta”,结果为:

Ange sökord: sta
Titel: STAR WARS 1  Betyg: 4/5
Titel: STAR WARS 2  Betyg: 2/5
Titel: STAR WARS 3  Betyg: 4/5
Titel: STAR WARS 4  Betyg: 3/5

如果我添加超过7部电影,则结果为:

nothing

1 个答案:

答案 0 :(得分:0)

代替

File fil = new File("filmdatabas.txt");

尝试使用FileReader(来自java.io包)

FileReader fil = new FileReader("filmdatabas.txt");

(此外,您可以使用BufferedReader及其readLine()方法-但这只是附加的优化)