2016-11-19 3 views
0

Je suis tombé sur ce code pour sauver quelque chose à un fichier .text en utilisant FileOutputStreamvariables En passant par FileOutputStream

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

Est-il possible que je pouvais passer une variable à la filname tels que FileOutputStream (nom de fichier . texte)?

+2

Eh bien, vous pouvez concaténer la valeur d'une variable avec '.txt', par exemple 'new FileOutputStream (nom de fichier +" .txt ")'. Avez-vous déjà essayé quelque chose? –

+0

@spacing Envisagez de sélectionner une réponse à la question si le problème est résolu. – nullpointer

Répondre

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 ;) 
} 

Ce que vous utilisez est ici FileOutputStream's constructor qui accepte un paramètre de chaîne. Vous pouvez donc certainement le modifier en fonction de vos besoins.

Remarque - Souvenez-vous d'attraper l'exception et

3

Aucun problème. Il suffit d'utiliser une variable de chaîne dans le constructeur comme ceci:

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

Un commentaire important, vous devez utiliser le constructeur qui spécifie le codage de caractères du flux. Chaque fois que vous convertissez une chaîne en un flux de sortie, vous encoderez des caractères en octets, et un encodage de caractères sera utilisé. Si vous ne spécifiez pas explicitement l'encodage, il utilisera le codage default qui peut être différent sur différents ordinateurs, et votre code fonctionnera différemment sur différents ordinateurs.

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