JAVA:在classpath中编写文本文件?

时间:2014-10-29 22:39:13

标签: java

我想在目录中写一个文件,我的main.class也是。 这总是会出错:

File file = new File(main.class.getResourceAsStream("test.txt"));

那也不起作用:

File file = new File(getClass().getResource(AsStream)("me.test.test.txt"));

总是说,构造函数File(InputStream)是未定义的。 有人有想法吗?

此致

2 个答案:

答案 0 :(得分:1)

你不能在这个流中写,它是一个InputStream。您应该根据getResource(“test.txt”)提供的路径创建FileOutpuStream。

如果文件已存在:

FileOutputStream file = new FileOutputStream(Main.class.getResource("/toto.txt").getFile());

如果它还不存在:

FileOutputStream file = new FileOutputStream(Main.class.getResource("/").getFile() + "toto.txt");

但是,要小心,位置可以在jar文件中,然后它可以是只读的。

答案 1 :(得分:0)

试试这个...

File file=(new File(Main.class.getProtectionDomain().getCodeSource().getLocation().getPath()));

文件对象表示main.class文件在运行时所在的目录。

之后创建新文件:     文件txtFile =新文件(文件," myText.txt");