Сохранить текстовый файл Java в папку - PullRequest
5 голосов
/ 30 января 2012

Прежде всего - я люблю вас всех в Stackoverflow! Все очень полезны! К сожалению, когда я иду, чтобы ответить на вопросы, они слишком продвинуты для меня: '(

Я хочу сохранить текстовый файл в папке, но не в абсолютной папке, например, я хочу сохранить его в

{расположение класса} /text/out.txt

Поскольку программа работает на разных компьютерах, местоположение меняется, поэтому я не могу поставить C: // ect

Я также знаю, что мне нужно использовать сомнение "\\" - но это не сработало в моих попытках

public void writeFile (int ID, int n) {
            try{
                    String Number = Integer.toString(n);
                    String CID = Integer.toString(ID);
          FileWriter fstream = new FileWriter("//folder//out.txt",true); //this don't work 
          BufferedWriter out = new BufferedWriter(fstream);
          out.write(Number+"\t"+CID);
          out.newLine();
          out.close();
          }//catch statements etc

Ответы [ 4 ]

6 голосов
/ 30 января 2012

Вы можете использовать функцию getAbsolutePath ():

 FileWriter fstream = new FileWriter(new File(".").getAbsolutePath()+"//folder//out.txt",true);

, и я рекомендую вам взглянуть на этот поток

0 голосов
/ 12 мая 2017

Самый простой способ сохранить ваш .txt в корне вашей папки - это сделать:

public class MyClass 
{
public void yourMethod () throws IOException 
{

FileWriter fw = null;

try

{

 fw = new FileWriter ("yourTxtdocumentName.txt");

// whatever you want written into your .txt document

fw.write ("Something");
fw.write ("Something else");
System.out.println("Document completed.");
fw.close

}
catch (IOException e)
{
e.printStackTrace();
}

} // end code
} // end class

Затем вы вызываете этот метод, когда захотите, он сохранит все, что вы написали, для записи в документ .txt в корень папки вашего проекта.

Затем вы можете запустить приложение на любом компьютере, и оно все равно сохранит документ для просмотра на любом компьютере.

0 голосов
/ 20 февраля 2015

Создание папки с именем text в каталоге кода не зависит от файловой системы.Чтобы создать файл в {project folder}/text/out.txt, вы можете попробовать это:

String savePath = System.getProperty("user.dir") + System.getProperty("file.separator") + text;
File saveLocation = new File(savePath);
    if(!saveLocation.exists()){
         saveLocation.mkdir();
         File myFile = new File(savePath, "out.txt");
         PrintWriter textFileWriter = new PrintWriter(new FileWriter(myFile));
         textFileWriter.write("Hello Java");
         textFileWriter.close();
     }

Не забудьте поймать IOException!

0 голосов
/ 30 января 2012

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

new File("some.file").exists();
new File("folder").mkdir(); // creates a directory
new File("folder" + File.separator + "out.txt"); // creates a file

Не нужно создавать объект File, если ресурс уже существует.

File.separator - это решение ваших проблем локализации с косой чертой.

...