2014-10-29 4 views
-1

Я хочу написать файл в каталоге, где мой main.class также есть. Это всегда получает ошибку:JAVA: Написание текстового файла в classpath?

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

Это не работает слишком:

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

Он всегда говорит, что конструктор File (InputStream) не определено. Любая идея?

С уважением,

+0

Почему именно здесь? Вы можете настроить внешний, хорошо определенный каталог, а не – fge

+1

Как правило, вы не можете написать путь к классам. Ваш класс может очень хорошо проживать в JAR-файле только для чтения. – lexicore

+0

В общем, вы не можете этого сделать. Элементы CLASSPATH следует рассматривать как только для чтения. Рассмотрим, например, JAR или файл без распаковки WAR. – EJP

ответ

1

Вы не можете писать в этом потоке, это InputStream. Вы должны создать FileOutpuStream, основанный на пути, предоставленном getResource ("test.txt").

Если файл уже существует:

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

Если он еще не существует:

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

Но, будьте осторожны, местоположение может быть в файле фляги, то она может быть прочитана только.

0

Попробуйте это ...

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

файловый объект представляет каталог, в котором файл main.class находится во время выполнения.

После этого создайте новый файл как: Файл txtFile = new Файл (файл, "myText.txt");

Смежные вопросы