Après avoir exécuté mon programme, je reçois ce texte magnifiquement formaté: Sortie de texte dans un fichier?
Que dois-je ajouter à mon code afin d'obtenir ce texte dans un fichier fourni en sortie txt exactement comme il est?
Après avoir exécuté mon programme, je reçois ce texte magnifiquement formaté: Sortie de texte dans un fichier?
Que dois-je ajouter à mon code afin d'obtenir ce texte dans un fichier fourni en sortie txt exactement comme il est?
En supposant que vous écrivez actuellement votre sortie à l'écran en utilisant quelque chose comme System.out.Println(...)
, une façon comparable d'écrire du texte dans un fichier est d'utiliser un PrintStream.
Vous devriez être capable de trouver de nombreux exemples de la façon de le faire si vous effectuez une recherche; here's one.
import java.io.*;
class PrintStreamDemo {
public static void main(String args[]){
FileOutputStream out;
PrintStream ps; // declare a print stream object
try {
// Create a new file output stream
out = new FileOutputStream("myfile.txt");
// Connect print stream to the output stream
ps = new PrintStream(out);
ps.println ("This data is written to a file:");
System.err.println ("Write successfully");
ps.close();
}
catch (Exception e){
System.err.println ("Error in writing to file");
}
}
}
ps. un avertissement: la partie «magnifiquement formatée» de votre texte repose probablement sur la sortie affichée dans une police à espacement fixe (tous les caractères ont la même largeur); Si elles sont affichées dans une police non-espacée, les colonnes ne seront pas alignées. Si vous l'enregistrez en tant que fichier .txt simple, vous n'avez aucun contrôle sur la police utilisée par quelqu'un d'autre pour afficher ce fichier lors de son ouverture.
Mise à jour:
Il y a quelques approches que vous pouvez prendre, si vous trouvez que vous avez un programme complet de System.out.println
appels et que vous voulez diriger la sortie vers un fichier au lieu.
1) La façon sale & rapide serait d'ouvrir un PrintStream à votre fichier de sortie désiré, puis appelez System.setOut()
pour rediriger System.out
au PrintStream spécifié.
2) Une façon peut-être plus simple serait de réécrire tous les appels de System.out.println
pour utiliser votre propre méthode de sortie. De cette façon, lorsque vous voulez changer la façon dont vous gérez la sortie (par exemple, l'envoyer à plusieurs fichiers, à l'écran et à un fichier, par exemple), vous n'avez qu'un seul endroit à changer. Plus de travail à l'avant, mais vous donne plus de flexibilité à la fin.
Mon programme comporte plusieurs lignes et comprend plusieurs méthodes. Je ne peux pas coller un "out.print ..." devant chaque ligne. – Jordan
Eh bien, je pourrais mais ce serait une énorme douleur et prendre beaucoup de temps. Y a-t-il un autre moyen? – Jordan
Pouvez-vous expliquer plus clairement comment vous produisez la sortie maintenant? Quelle (s) méthode (s) appelez-vous pour l'écrire à l'écran? –
Vous n'avez pas précisé d'où proviennent les données, mais de toute façon entrée ou DB, je placerais sur un tableau multidimensionnel. Ensuite, l'impression sera facile.
P.S. Aussi garder le format que je voudrais utiliser l'onglet valeurs séparées "/ t"
Parser public class {
private void parseData{
int[][] array = new int[3][12];
// print array in rectangular form
for (int r=0; r<array.length; r++) {
for (int c=0; c<array[r].length; c++) {
System.out.print(array[r][c] + "\t");
}
System.out.println("");
}
}
}
: Votre programme écrit par un autre? –
J'ai écrit le programme moi-même dans BlueJ. – Jordan