Can';t读取java中的文本文件(视为空文件)

Can';t读取java中的文本文件(视为空文件),java,file,text,Java,File,Text,我想为自己做一个应用程序,告诉我我看过或没有看过的电影。 第一个问题,在原型中,我有一个文本文件,其中我放了一些电影的标题。 但是我用的扫描器只是认为文件是空的。 对我来说,它应该起作用,我不知道在哪里搜索。 谢谢你的帮助。:) 我这样做: import java.util.*; import java.lang.*; import java.io.*; class HaveFile { public static void main(String[] args) {

我想为自己做一个应用程序,告诉我我看过或没有看过的电影。 第一个问题,在原型中,我有一个文本文件,其中我放了一些电影的标题。 但是我用的扫描器只是认为文件是空的。 对我来说,它应该起作用,我不知道在哪里搜索。 谢谢你的帮助。:)

我这样做:

import java.util.*;
import java.lang.*;
import java.io.*;

class HaveFile {
    public static void main(String[] args) {
        try {
            boolean trouve = false;
            System.out.println("Entrer le film a chercher");
            Scanner input = new Scanner(System.in);
            String word = input.nextLine();
            Scanner films = new Scanner(new File(args[0]));

            while (films.hasNextLine() == true) {
                String line = films.nextLine();
                if (line.contains(word)) {
                    trouve = true;
                    System.out.println("ok");
                }
            }
            if (trouve) {
                System.out.println("Le film est présent");
            } else {
                System.out.println("Le film n'est pas présent");
            }
            System.out.println("Continuer ( entrer ) ou quitter");
            word = input.next();
        }
        catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }
}
它似乎工作得很好。我编译后运行为:

java HaveFile HaveFile.java
当它出现提示时,我说的是文本中显示的“输入”


我怀疑你的基本问题是你的文件实际上并不存在。你确定有C:/Films.txt吗?我使用的是Mac电脑,而不是Windows,因此我无法对这篇文章的Windows特定部分发表评论。

你的txt文件是什么样子的?我试过使用自制的文本文件,但似乎效果不错。另一方面,我想指出的是,您正在将真/假与真进行比较,以获得真/假:v(films.hasNextLine()==真)在初始化扫描程序时,请确保文件名和目录正确。我还测试了您的方法,它对我有效。可能尝试其他路径(如桌面)并将文件移到那里?“films.hasNextLine()==true”应替换为“films.hasNextLine()”。这不是问题,而是糟糕的风格。将一个bollean与一个bollean进行比较是毫无意义的。您对该文件的存在有多大信心?windows计算机上的正确文件格式是C:/Filename还是C:\Filename?您可以执行File foo=new File(“…”),然后执行if(foo.exists())来告诉您一些事情。您可以使用“C:/”作为文件,询问它是否是目录,然后查询内容。您的解决方案可能有效,但在我的计算机上不起作用(很遗憾)。我检查了文件名和路径。我认为问题在于它没有进入while循环。实际上,如果你正确,它是“C:\”,但问题仍然存在。我问过文件是否存在,它是否存在,目录是否也存在;那么字符串中真正需要的是C:\\Filename,因为第一个\需要转义第二个\。否则C会将名称解释为C:\F(C字符串中的\F可能是什么)ilename。我删除了我的文件并创建了一个新文件,现在它似乎工作得很好。
java HaveFile HaveFile.java