Java阅读文本文件

时间:2012-09-09 21:53:37

标签: java readfile fileinputstream

我对Java中的txt文件有疑问

当我必须阅读文本文件时,我必须指出路径。

但是,txt文件位于同一文件夹中。

需要做的是......

测试阅读文件名。

测试:类名 readoption:读取文件的选项 filename:同一文件夹的文件名。

但是,我不想使用路径来指出文件,这意味着我想在我的代码中不使用“C:/ Users / myname / Desktop / myfolder /”来阅读文本文件。

有人知道怎么做吗?

感谢。

public class testing{ 



private static boolean debug = true;

    public static void main(String args [])
    {


            if(args.length == 0)
            {// if you do nothing
                            if(debug  == true)
                            {
                                    System.out.println(args);                                      
                            }

                            System.err.println("Error: Missing  Keywords");
                            return;

            }
            else if(args.length == 1)
            {// if you miss key word
                    if(debug  == true)
                    {
                            System.out.println(args);                                      
                    }
                    System.err.println("Error: Missing filename");
                    return;

            }
            else
            {// if it is fine
                String pathes = "C:/Users/myname/Desktop/myfolder/";// dont want to use this part 
                    if(debug  == true)
                    {
                            System.out.println("Everthing is fine");        
                            System.out.println("Keyword :" + args[0]);
                            System.out.println("File name :" + args[1]);
                    }
                    try{
                          // Open the file that is the first 
                          // command line parameter
                          FileInputStream fstream = new FileInputStream(pathes + "bob.txt");
                          // Get the object of DataInputStream
                          DataInputStream in = new DataInputStream(fstream);
                          BufferedReader br = new BufferedReader(new InputStreamReader(in));
                          String strLine;
                          //Read File Line By Line
                          while ((strLine = br.readLine()) != null)   {
                          // Print the content on the console
                          System.out.println (strLine);
                          }
                          //Close the input stream
                          in.close();
                            }catch (Exception e){//Catch exception if any
                          System.err.println("Error: " + e.getMessage());
                          }
                   }


    }
}

4 个答案:

答案 0 :(得分:1)

将此行String pathes = "C:/Users/myname/Desktop/myfolder/";更改为:

 String pathes = args[1];

此行FileInputStream fstream = new FileInputStream(pathes + "bob.txt");

FileInputStream fstream = new FileInputStream(pathes);

答案 1 :(得分:0)

如果你将文本文件放入java项目中的“myfolder”,你的路径应该是这样的:

String pathes = "/myfolder/bob.txt";

FileInputStream fstream = new FileInputStream(pathes);

答案 2 :(得分:0)

从.properties文件加载文件的路径(使用java.util.Properties类),或者将其作为参数从命令行传递(在main String[]参数中)。< / p>

无论哪种方式,处理文件的代码都不能这样做,必须在外部完成。您的处理代码从调用它的方法接收文件路径,因此如果您决定使用其他方法(例如,GUI),则无需更改。

答案 3 :(得分:0)

你可以使用“。”对于实际路径并添加系统独立文件分隔符,如:

FileInputStream fstream = new FileInputStream("."+System.getProperty("file.separator")+"bob.txt");