Afficher un fichier text

cs_papse Messages postés 51 Date d'inscription samedi 3 novembre 2007 Statut Membre Dernière intervention 8 mars 2011 - 1 juil. 2008 à 19:37
co2_gaz Messages postés 29 Date d'inscription samedi 21 octobre 2006 Statut Membre Dernière intervention 14 septembre 2009 - 2 juil. 2008 à 23:41
Bonjour

Quelqu'un pourait me dire comment on peut ouvrir un fichier text en java?
j'ai essayé d'une maniere en ouvrant le fichier en mode lecture avec FileReader et en copiant son contenu dans un jtextarea mais le probleme est que s'il ya des sauts de ligne ça ne marche et meme s'il n'ya pas de sauts de ligne ça n'affiche comme dans le fichier en respectant les retours à le ligne
Merci d'avance pour toute aide.

3 réponses

co2_gaz Messages postés 29 Date d'inscription samedi 21 octobre 2006 Statut Membre Dernière intervention 14 septembre 2009
1 juil. 2008 à 20:11
Salut,
cela doit faire l'affaire

   /**
     *
     * @param path
     * @return
     * @throws IOException
     */
    public static String getTextFromFile(File file) throws IOException{
        String nl = System.getProperty("line.separator");
 
        
        StringBuffer res= new StringBuffer();
        
        FileReader fr=null;
        int i=0;
        fr = new FileReader(file);
 
        BufferedReader br = new BufferedReader(fr);
    //    Date d = new Date();
        while (br.ready()){
            i++;
            res.append(br.readLine() + nl);
        }
        
        br.close();
        //out(i+ " lignes - "+(new Date().getSeconds()-d.getSeconds())+" s");
        
        //pour avoir le texte désaccentue
        //return Normalizer.normalize(res.toString(), Normalizer.Form.NFD).replaceAll("[\u0300-\u036F]", "");

         return res.toString();
    }
0
cs_papse Messages postés 51 Date d'inscription samedi 3 novembre 2007 Statut Membre Dernière intervention 8 mars 2011
2 juil. 2008 à 08:09
Salut [auteur/CO2GAZ/888474.aspx co2_gaz]

J'ai pas pu exploité ton code en fait. J'ai pas bien compris son principe.
D'apres ce que j'ai compris on fait appeelle à la methode getTextFromFile(file) en precisant son argument. Il va nous retouneer une chaine de caractere que nous devons copier dans une zone de text (JtexArea par exemple) mais ça n'a pas marché ; est-ce-cela le principe ?.
Je vais te demander de m'expliquer comment peut on faire appelle à la methode et si possible le pricipe du code.

Autre chose ya pas un autre moyen de lui d'ouvrir mon fichier en le visualisant directement au lieu de proceder à une lecture du fichier au prealable ?

Merci
0
co2_gaz Messages postés 29 Date d'inscription samedi 21 octobre 2006 Statut Membre Dernière intervention 14 septembre 2009
2 juil. 2008 à 23:41
Bonsoir,
- 1:
un fichier ne pas etre ouvert  "en le visualisant directement" comme tu dis, car un fichier est un conteneur de données, donc il peut bien contenir une image, une video, du texte .... dans un cas générale en utilise un Inputstream ou un FileInputStream dans le cas de fichiers. En résumé il faut savoir qu'est ce qu'on est entrain de lire pour pouvoir le lire.
Dans le cas un fichier texte on peut utiliser la classe Scanner (depuis JAVA 5.0)
Scanner sc = new Scanner(new File("path"));
while (sc.hasNext()) {
String tmp = sc.next();
}
http://java.sun.com/j2se/1.5.0/docs/api/java/util/Scanner.html
mais j'ai déjà fait des testes de temps de traitement : la solution que je t'ai présenté est
plus perfermente.
-2:

JTextArea txtArea = new JTextArea();

final JFileChooser fileChooser = new JFileChooser(".");
//fileChooser.setApproveButtonText("???");
//tu peut aussi utiliser un FileFilter pour choisir que les .txt

btnOpen.addActionListener(new ActionListener(){

    @Override
    public void actionPerformed(ActionEvent e) {
            if(fileChooser.showOpenDialog(null)==JFileChooser.APPROVE_OPTION){

txtArea.setText(getTextFromFile(fileChooser.getSelectedFile()));
}
}
0
Rejoignez-nous