2010-10-27 9 views
2

Je viens de commencer à apprendre Java après C + +. mais jusqu'à présent rien n'est clair. surtout le travail avec les classes.travailler avec des fichiers texte en Java

dites-moi s'il vous plaît comment ouvrir un fichier en lecture ou en écriture? il est souhaitable de fournir le code complètement.

Merci. Désolé pour mon mauvais anglais. Upd: J'ai commencé à apprendre java il y a une heure, mais je n'ai pas encore écrit de programme de travail.

Merci à tous pour vos réponses!

Répondre

2

Que le Apache Commons soit votre ami. Il y a une classe FileUtils qui fait le travail.

+0

Je suis d'accord, ceux-ci sont très utiles, mais à mon humble l'OP doit d'abord comprendre comment les choses fonctionnent –

+0

Au contraire, je pense il est préférable d'avoir une satisfaction immédiate d'avoir fait le travail et ensuite, si nécessaire, plonger plus profondément dans le domaine. –

1

Voici un grand ensemble de didacticiels pour l'apprentissage de Java: The Java Tutorials.

Pour un didacticiel sur la façon de faire des E/S, consultez le chapitre Basic I/O de ces didacticiels.

2

Meilleur u go par livre de référence complet java .... Je donne exemple de programme j'espère que cela aidera u ....

public class Abc { 
    public static void main(String[] args) { 
     Abc.modemp(); 
    } 
    public static void modemp() { 
     String detail; 
     try { 
      BufferedReader empdtil = new BufferedReader(new FileReader("File Location")); 
      while ((detail = empdtil.readLine()) != null) { 
       System.out.println(detail); 
      } 
      empdtil.close(); 
     } catch (IOException e) { 
      System.out.println(e.getMessage()); 
     } 
    } 
} 
0

Je vous suggère d'éviter le BufferedReader pour lire un texte InputStream: readLine consomme le caractère eol et il n'est pas récupérable (aurait pu être, \ n, \ r, \ n \ r, ...). Si vous souhaitez conserver les caractères EOL, vous devez travailler directement avec un InputStreamReader. Voici ce que j'utilise:

/** 
* Read the open UTF-8 text InputStream to the end and close. 
* @param stream the open input stream 
* @return the text 
*/ 
public static String readText(InputStream stream) { 
    return readText(stream, "UTF-8"); 
} 

/** 
* Read the open text InputStream to the end and close. 
* @param stream the open text stream, not null 
* @param charsetName the charset (e.g. UTF-8), must be valid 
* @return the text 
* @throws RuntimeException wrapping UnsupportedEncodingException (if charsetName invalid) or IOException (if problem reading stream) 
*/ 
public static String readText(InputStream stream, String charsetName) { 
    InputStreamReader reader = null; 
    try { 
     reader = new java.io.InputStreamReader(stream, charsetName); 

     StringBuilder response = new StringBuilder(); 
     char[] buffer = new char[4 * 1024]; 
     int n = 0; 
     while (n >= 0) { 
      n = reader.read(buffer, 0, buffer.length); 
      if (n > 0) { 
       response.append(buffer, 0, n); 
      } 
     } 

     return response.toString(); 
    } 
    catch (UnsupportedEncodingException e) { 
     throw new RuntimeException(e); 
    } catch (IOException e) { 
     throw new RuntimeException(e); 
    } finally { 
     close(stream, reader); 
    } 
} 

/** 
* Close the closeable. 
* @param obj the closeable, may be null 
* @return true if successfully closed 
*/ 
public static boolean close(Closeable obj) { 
    if(obj != null) { 
     try { 
      obj.close(); 
      return true; 
     } catch (IOException e) { 
      e.printStackTrace(); 
      return false; 
     } 
    } 
    else 
     return false; 
} 

/** 
* Close all the closeables 
* @param objs the closeables, the list may not be null but individual items may 
* @return true if all were closed successfully 
*/ 
public static boolean close(Closeable... objs) { 
    boolean success = true; 
    for(Closeable c : objs) 
     success = success && close(c); 

    return success; 
} 

Il existe plusieurs façons d'obtenir un InputStream pour un fichier, d'une manière utilise l'un des constructeurs de FileInputStream.

écriture dans le fichier est un peu plus facile, avec l'utilisation de PrintWriter:

File file = new File("C:\\file.txt");  
    PrintWriter writer = null; 
    try { 
     writer = new PrintWriter(new FileWriter(file, true)); 
     writer.print("hello "); 
     writer.println("world"); 
     writer.print(12.23); 
    } catch (IOException e) { 
     throw new RuntimeException(e); 
    } finally { 
     close(writer); 
    } 
Questions connexes