如何打开文本文件?

时间:2013-08-31 18:04:21

标签: java text-files notepad

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

     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);
         }

    }

错误消息显示无法找到该文件,但我知道该文件已存在。我是否需要将文件保存在特殊文件夹中?

3 个答案:

答案 0 :(得分: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 of File

Informations about Path in computing

答案 1 :(得分: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();
      }
   }
}

答案 2 :(得分:-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/