2016-11-19 2 views
0

Так что я наткнулся на этот код, чтобы сохранить что-то в .text файл с помощью FileOutputStreamПередача переменной через FileOutputStream

try (PrintStream out = new PrintStream(new FileOutputStream("filename.txt"))) { 
    out.print(text); 
} 

Есть ли способ, которым я мог бы передать переменную в filname, такие как FileOutputStream (файла. текст)?

+2

Ну вы можете сцепить значение переменной с '.txt', например, 'new FileOutputStream (filename +" .txt ")'. Вы еще что-нибудь пробовали? –

+0

@spacing Рассмотрите возможность выбора ответа на вопрос, если проблема решена. – nullpointer

ответ

2
String fileName = "filename.text"; // Your need be, I might have used .txt 

try (PrintStream out = new PrintStream(new FileOutputStream(fileName))) { 
    out.print(text); 
} catch (FileNotFoundException fnf) { 
    fnf.printStackTrace(); // your .text would take you here ;) 
} 

Что вы используете здесь FileOutputStream's constructor, который принимает строковый параметр. Таким образом, вы можете, конечно, изменить его в соответствии с вашими потребностями.

Примечание - Не забудьте поймать исключение, а

3

проблем нет. Просто используйте строку в переменную конструктора, как это:

String myFile = "filename.txt"; 
PrintStream out = new PrintStream(new FileOutputStream(myFile))); 
out.print(text); 

Один важный комментарий, вы должны использовать конструктор, который определяет кодировку потока. Каждый раз, когда вы конвертируете строку в выходной поток, вы будете кодировать символы в байты, и будет использоваться некоторая кодировка символов. Если вы не укажете явно кодировку, тогда она будет использовать кодировку default, которая может отличаться на разных компьютерах, и ваш код будет работать по-разному на разных компьютерах.

String myFile = "filename.txt"; 
PrintStream out = new PrintStream(new FileOutputStream(myFile), "UTF-8")); 
out.print(text); 
Смежные вопросы