1

我一生都无法弄清楚这个程序有什么问题:

     import java.io.*;

     public class EncyptionAssignment 
     {
         public static void main (String[] args) throws IOException
         {
             String line;
             BufferedReader in;

             in = new BufferedReader(new FileReader("notepad encypt.me.txt"));
             line = in.readLine();

             while(line != null)
             {
                    System.out.println(line);
                    line = in.readLine();
             }

             System.out.println(line);
         }

    }

错误消息说找不到文件,但我知道该文件已经存在。我需要将文件保存在特殊文件夹中吗?

4

3 回答 3

3

错误是"notepad encypt.me.txt"。由于您的文件名为“encypt.me.txt”,因此您不能在其名称前放置“记事本”。此外,名为“notepad encypt.me.txt”的文件可能不存在或不是您要打开的文件。

此外,如果文件不在项目文件夹中,则必须提供文件的路径(绝对或相对)。

我将假设您使用的是 Microsoft Windows 系统。

如果您的文件具有“C:\foo\bar\encypt.me.txt”的绝对路径,则必须将其作为"C:\\foo\\bar\\encypt.me.txt"或 作为传递"C:"+File.separatorChar+"foo"+File.separatorChar+"bar"+File.separatorChar+encypt.me.txt"

如果它仍然无法正常工作,您应该验证该文件:

1) 存在于提供的路径中。您可以使用以下代码来完成:

File encyptFile=new File("C:\\foo\\bar\\encypt.me.txt");
System.out.println(encyptFile.exists());

如果提供的路径是正确的,它应该是正确的。

2) 可以被应用程序读取

您可以使用以下代码来完成:

File encyptFile=new File("C:\\foo\\bar\\encypt.me.txt");
System.out.println(encyptFile.canRead());

如果你有读取文件的权限,它应该是 true。

更多信息:

文件的 Javadoc

关于计算路径的信息

于 2013-08-31T19:52:15.240 回答
2
import java.io.*;

public class Test {
    public static void main(String [] args) {

    // The name of the file to open.
    String fileName = "temp.txt";

    // This will reference one line at a time
    String line = null;

    try {
        // FileReader reads text files in the default encoding.
        FileReader fileReader = 
            new FileReader(fileName);

        // Always wrap FileReader in BufferedReader.
        BufferedReader bufferedReader = 
            new BufferedReader(fileReader);

        while((line = bufferedReader.readLine()) != null) {
            System.out.println(line);
        }   

        // Always close files.
        bufferedReader.close();         
    }
    catch(FileNotFoundException ex) {
        System.out.println(
            "Unable to open file '" + 
            fileName + "'");                
    }
    catch(IOException ex) {
        System.out.println(
            "Error reading file '" 
            + fileName + "'");                  
        // Or we could just do this: 
        // ex.printStackTrace();
      }
   }
}
于 2017-01-29T12:54:38.517 回答
-1
package com.mkyong.io;

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

public class BufferedReaderExample {

    public static void main(String[] args) {

        BufferedReader br = null;

        try {

            String sCurrentLine;

            br = new BufferedReader(new FileReader("C:\\testing.txt"));

            while ((sCurrentLine = br.readLine()) != null) {
                System.out.println(sCurrentLine);
            }

        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (br != null)br.close();
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }

    }
}

参考:http ://www.mkyong.com/java/how-to-read-file-from-java-bufferedreader-example/

于 2013-08-31T18:49:17.963 回答