2

我对 Java 中的 txt 文件有疑问

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

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

需要做的是...

测试阅读选项文件名。

testing : 类名 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

4 回答 4

1

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

 String pathes = args[1];

这条线FileInputStream fstream = new FileInputStream(pathes + "bob.txt");

FileInputStream fstream = new FileInputStream(pathes);
于 2012-09-09T21:57:25.497 回答
0

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

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

FileInputStream fstream = new FileInputStream(pathes);
于 2012-09-09T21:56:34.413 回答
0

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

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

于 2012-09-09T21:57:13.623 回答
0

您可以使用 ”。” 对于实际路径并添加系统依赖文件分隔符,例如:

FileInputStream fstream = new FileInputStream("."+System.getProperty("file.separator")+"bob.txt");
于 2012-09-09T22:03:45.863 回答