有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JAVA木卫一。FileNotFoundException。正在尝试传入参数[0]

<>我一直试图把我的C++代码转换成java,我特别是在文件输入上被卡住了。p>
String inputfilename = args[0];
    Scanner infile = new Scanner (new FileInputStream(inputfilename));

这一直给我一个java。木卫一。FileNotFoundException错误。我试图传入的文件“StackData.txt”被正确地放入命令行参数中。我已经把它放在根目录和project\src\文件夹中,它们都不适合我。我试着给inputfilename字符串命名,并喜欢-

String inputfilename = "StackData.txt";
Scanner infile = new Scanner (new FileInputStream(inputfilename));

这似乎也不起作用。也不尝试将目录路径抛出到字符串名称中。我在什么地方犯了一个真正幼稚的错误吗

我试过使用

File infile = new File(args[0]);

如果我尝试使用while循环的方法

while (infile.hasNextInt()){ blah blah
 }

它说这个方法无法解析,我想这意味着要使用hasNextInt()方法,我必须用FileInputStream初始化文件


共 (2) 个答案

  1. # 1 楼答案

    文件中的简单代码会相应地使用

    BufferedReader br = null;
    
        try {
    
            String sCurrentLine;
    
            br = new BufferedReader(new FileReader("C:\\testing.txt"));
    
            while ((sCurrentLine = br.readLine()) != null) {
                System.out.println(sCurrentLine);
            }
    
  2. # 2 楼答案

    每个java jvm都有一条工作路径。通常情况下,jvm的启动位置是相同的。但你总能改变这一切

    IDE设置了默认的工作路径。根据您的IDE,这可以在开始选项中更改

    要查找当前工作路径,只需打印当前目录的绝对路径:

    public static void main(String[] args) {
        System.out.println(new File(".").getAbsolutePath());
    }
    

    如果您使用的是相对路径,那么您的文件应该位于该文件夹中

    无论如何,使用绝对路径都不应引发任何FNF异常


    要使用扫描仪,可以使用以下示例:

        try {
            Scanner s = new Scanner(new FileInputStream("text.xml"));
    
            while (s.hasNextInt()){ 
             // bla bla
            }
        } catch (FileNotFoundException e) {
            // Please handle this exception ;)
            e.printStackTrace();
        }
    

    请注意,您试图在没有这种方法的File对象上调用hasNextInt()。必须在Scanner对象上调用它