2011-09-04 5 views
-1

Après avoir exécuté mon programme, je reçois ce texte magnifiquement formaté: enter image description hereSortie 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?

+0

: Votre programme écrit par un autre? –

+0

J'ai écrit le programme moi-même dans BlueJ. – Jordan

Répondre

0

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.

+0

Mon programme comporte plusieurs lignes et comprend plusieurs méthodes. Je ne peux pas coller un "out.print ..." devant chaque ligne. – Jordan

+0

Eh bien, je pourrais mais ce serait une énorme douleur et prendre beaucoup de temps. Y a-t-il un autre moyen? – Jordan

+0

Pouvez-vous expliquer plus clairement comment vous produisez la sortie maintenant? Quelle (s) méthode (s) appelez-vous pour l'écrire à l'écran? –

0

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

} 

}

Questions connexes