1.1.1.10. fejezet, File rendszer és IO

A Java nyelv több módját ismeri a fájlkezelésnek. Byte blokk olvasókat és írókat (InputStream, OutputStream), ezek bufferelt változatait (BufferedInputStream, BufferedOutputStream), tömb olvasókat és írókat (ByteArrayInputStream, ByteArrayOutputStream), karakter blokk olvasókat és írókat (InputStreamReader, OutputStreamWriter), ezek bufferelt változatait (BufferedReader, BufferedWriter), file olvasókat és írókat (FileInputStream, FileOutputStream) és ezek karakteres változatait (FileReader,FileWriter) használhatjuk fel.

Most lássunk példa a sor olvasásra:

private void readResult (InputStream in) 
{
  String line = null;
  BufferedReader br = new BufferedReader(new InputStreamReader(in,Charset.forName("cp852")));
  try {
 
    while (!this.isInterrupted() && (line = br.readLine()) != null)
    {
     System.out.println(line);
    }
  } catch (IOException ex) {
    ex.printStackTrace();
  } finally {
    try {
      br.close();
    } catch (IOException ex) {
      ex.printStackTrace();
    }
 
  }
 
}

Mint látható, az InputStreamReader objektum létrehozásánál megadható a beolvasott String eredeti kódolása. Így elkerülhetők az olvashatatlan ékezetes karakterek. És lényeges, hogy a Stream-ek átadhatók a Reader-Writer osztályoknak, mint források.

Scanner

private static void readFile(String fileName) {
     try {
       Scanner scanner = new Scanner(new File(fileName));
       scanner.useDelimiter(System.getProperty("line.separator")); 
       while (scanner.hasNext()) {
         System.out.println(scanner.next());
       }
       scanner.close();
     } catch (FileNotFoundException e) {
       e.printStackTrace();
     }
   } 

Nem beszéltünk még a BufferedChannal-ről, a Socket-ről, a CharBuffer és ByteBuffer osztályokról.

XML, JSON

Blaise Doughan blog bejegyzése JAXB and Marshal/Unmarshal Schema Validation és JAXB and Java IO (Files, Streams, Readers, and Writers) címmel. JSON marshalling és unmarshalling MOXy.

CsatolmányMéret
Csomag ikon Homework4Filesystem.zip23.87 KB