运行使用某些静态文件的现有项目

时间:2014-12-18 13:25:33

标签: java eclipse

我创建了这个类来访问/创建一些文件:

public static File getFile(String filePath) throws IOException {
        File file = new File(filePath);
        if (file.exists() && !file.isDirectory()) {
            return file;
        } else {
            file.createNewFile();
            byte[] dataToWrite = "some text".getBytes();
            FileOutputStream out = new FileOutputStream(file);
            out.write(dataToWrite);
            out.close();
            return file;
        }

    }

我这样叫这个班:

getFile("myfile.txt");

应用程序尝试访问该文件,如果没有特定文件,则会创建该文件。 问题是当我在非管理员帐户下运行此代码时,我会因许可问题而获得IOException。我知道该文件将在eclipse文件夹中创建。另外我不应该为我的项目使用静态文件路径,它应该动态工作。我该怎么办?

2 个答案:

答案 0 :(得分:1)

除非这是一个类赋值,否则我不再编写低级File代码了。查看Apache Commons IO和/或Google Guava

此外,在没有任何更详细的路径的情况下,在运行应用程序的任何位置查找(和创建)文件。在Eclipse中,默认情况下,这是项目的根文件夹,您可以在启动配置中更改它。在项目或文件上执行运行为... 时,将自动创建启动配置;可以通过运行>进行修改运行配置... 运行> 调试配置... 菜单。请注意,Run和Debug配置实际上是相同的,唯一的区别是Eclipse如何启动JVM(无论是否处于调试模式)。

您还可以通过工具栏按钮调用和/或编辑它们: enter image description here

http://help.eclipse.org/luna/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Ftasks%2Ftasks-java-local-configuration.htm

查看更多信息

答案 1 :(得分:0)

关于许可问题,没有解决这个问题。您应捕获异常并与用户交互,告知用户没有权限,应该/可以提供另一条路径。

您必须从控制台,应用程序参数或其他文件中捕获用户的路径。

其中一个选项是在调用应用程序时捕获参数,例如:

public static void main (String args [])
{
    //First argument is the file path
    String path = args[0]; 
    File theFile = null;

    if(args[0] != null){
        try{
            File theFile = File getFile(path);
            //do stuff with the file
        }catch(IOException ioe){
            //NManage the Exception here
        }

    }
}