2012-01-29 3 views
4

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

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

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

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

Я также знаю, что нужно использовать сомнение «\\» - но это не помогло моим попыткам

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 

ответ

5

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

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

и я sugest вам взглянуть на this нить

+0

Super ** Amazing ** Stuff! Благодаря!! – Rabiani

-1

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

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 - это ответ на ваши проблемы с локализацией с помощью слэшей.

0

Создание папки с именем 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

Самый простой способ сделать это сохранить .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 в корневую папку вашего проекта.

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

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