User Tools

Site Tools


java:buffered_io

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
java:buffered_io [2017/02/07 12:19] – [Διαβάζοντας και γράφοντας περισσότερα από ένα bytes σε δυαδικό αρχείο] gthanosjava:buffered_io [2017/02/07 12:30] (current) – external edit 127.0.0.1
Line 12: Line 12:
  
  
-===== Διαβάζοντας και γράφοντας γραμμή-γραμμή σε αρχείο κειμένου ===== 
- 
-Η διαδικασία ανάγνωσης ή διαβάσματος χαρακτήρων λαμβάνουν χώρα συνήθως σε ομάδες χαρακτήρων. Μια συνηθισμένη  ομάδα χαρακτήρων είναι η γραμμή. Η γραμμή ορίζεται ως μία σειρά από χαρακτήρες με ένα χαρακτήρα αλλαγής γραμμής στο τέλος. Ο χαρακτήρας αλλαγής γραμμής μπορεί να είναι μια ακολουθία χαρακτήρων carriege return/line feed ('\r''\n'), ένας χαρακτήρας carriege return ('\r'), ή ένας χαρακτήρας line feed ('\n').  
- 
-Ας τροποποιήσουμε το παράδειγμα //CopyCharacters// για να χρησιμοποιήσουμε I/O χαρακτήρων για να διαβάσουμε και να γράψουμε γραμμή-γραμμή. Για να το κάνουμε αυτό, θα πρέπει να χρησιμοποιήσουμε δύο κλάσεις που δεν έχουμε ξαναδεί, τις [[https://docs.oracle.com/javase/7/docs/api/java/io/BufferedReader.html|BufferedReader]] και [[https://docs.oracle.com/javase/7/docs/api/java/io/PrintWriter.html|PrintWriter]].  
- 
-Το παράδειγμα [[CopyLines]] επικαλείται τις BufferedReader.readLine και PrintWriter.println για να διαβάσει και να γράψει μία γραμμή κάθε φορά. 
- 
-<code java CopyLines.java> 
-import java.io.*; 
- 
-public class CopyLines { 
-  public static void main(String[] args) throws IOException { 
- 
-    BufferedReader inputStream = null; 
-    PrintWriter outputStream = null; 
- 
-    try { 
-      String filename; 
-      if(args.length > 0) 
-        filename = args[0]; 
-      else 
-        filename = "xanadu.txt"; 
-         
-      inputStream = new BufferedReader(new FileReader(filename)); 
-      outputStream = new PrintWriter(new FileWriter("__"+filename)); 
- 
-      String l; 
-      while ((l = inputStream.readLine()) != null) { 
-        outputStream.println(l); 
-      } 
-    } finally { 
-      if (inputStream != null) { 
-        inputStream.close(); 
-      } 
-      if (outputStream != null) { 
-        outputStream.close(); 
-      } 
-    } 
-  } 
-} 
-</code> 
- 
-Η κλήση της //readline// επιστρέφει μια γραμμή κειμένου. Η κλάση //CopyLines// εξάγει κάθε γραμμή, χρησιμοποιώντας την //println//, η οποία προσθέτει τον χαρακτήρα αλλαγής γραμμής για το τρέχον λειτουργικό σύστημα. 
  
java/buffered_io.1486469943.txt.gz · Last modified: 2017/02/07 12:19 (external edit)