java:character_streams

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
java:character_streams [2020/03/09 07:53]
gthanos [Χρησιμοποιώντας Streams Xαρακτήρων]
java:character_streams [2020/03/09 20:59]
gthanos
Line 1: Line 1:
 ====== Ροές Χαρακτήρων (Character Streams) ====== ====== Ροές Χαρακτήρων (Character Streams) ======
  
-Η Java χρησιμοποιεί για την κωδικοποίηση χαρακτήρων τη μορφοποίηση [[https://en.wikipedia.org/wiki/UTF-16|UTF-16]]. Το πρότυπο UTF-16 κωδικοποιεί κάθε χαρακτήρα σε 2 bytes (max 65000 χαρακτήρες), ενώ μπορεί να κωδικοποιήσει χαρακτήρες και σε 4 bytes, εάν οι συνδυασμοί των 65000 χαρακτήρων αποδειχθούν μη επαρκείς. +Η Java χρησιμοποιεί για την κωδικοποίηση χαρακτήρων τη μορφοποίηση [[https://en.wikipedia.org/wiki/UTF-16|UTF-16]]. Το πρότυπο UTF-16 κωδικοποιεί κάθε χαρακτήρα σε 2 bytes (max 65000 χαρακτήρες), ενώ μπορεί να κωδικοποιήσει χαρακτήρες και σε 4 bytes, εάν οι δυνατοί συνδυασμοί των 65000 χαρακτήρων αποδειχθούν μη επαρκείς. 
  
 ==== Χρησιμοποιώντας Streams Xαρακτήρων ==== ==== Χρησιμοποιώντας Streams Xαρακτήρων ====
  
-Όλες οι κλάσεις που περιγράφουν stream χαρακτήρων κατάγονται από τις κλάσεις [[https://docs.oracle.com/javase/7/docs/api/java/io/Reader.html|Reader]] και [[https://docs.oracle.com/javase/7/docs/api/java/io/Writer.html|Writer]]. Σε αναλογία και με τα byte streams που είδαμε προηγούμενα, υπάρχουν οι κλάσεις [[https://docs.oracle.com/javase/7/docs/api/java/io/FileReader.html|FileReader]] και [[https://docs.oracle.com/javase/7/docs/api/java/io/FileWriter.html|FileWriter]] που επιτρέπουν την ανάγνωση και τη μορφοποιημένη εγγραφή streams χαρακτήρων από/σε αρχείο. Το παρακάτω παράδειγμα της κλάσης //CopyCharacters// παρουσιάζει τις κλάσεις αυτές.+Όλες οι κλάσεις που περιγράφουν streams χαρακτήρων κατάγονται από τις κλάσεις [[https://docs.oracle.com/javase/7/docs/api/java/io/Reader.html|Reader]] και [[https://docs.oracle.com/javase/7/docs/api/java/io/Writer.html|Writer]]. Σε αναλογία και με τα byte streams που είδαμε προηγούμενα, υπάρχουν οι κλάσεις [[https://docs.oracle.com/javase/7/docs/api/java/io/FileReader.html|FileReader]] και [[https://docs.oracle.com/javase/7/docs/api/java/io/FileWriter.html|FileWriter]] που επιτρέπουν την ανάγνωση και τη μορφοποιημένη εγγραφή streams χαρακτήρων από/σε αρχείο. Το παρακάτω παράδειγμα της κλάσης //CopyCharacters// παρουσιάζει τις κλάσεις αυτές.
  
 <code java CopyCharacters.java> <code java CopyCharacters.java>
Line 50: Line 50:
 public class CopyLines { public class CopyLines {
   public static void main(String[] args) throws IOException {   public static void main(String[] args) throws IOException {
 +    
 +    String filename;
 +    if(args.length > 0)
 +      filename = args[0];
 +    else
 +      filename = "xanadu.txt";
  
-    BufferedReader inputStream null+    try (BufferedReader reader new BufferedReader(new FileReader(filename))
-    PrintWriter outputStream null;+         PrintWriter writer new PrintWriter(new FileWriter("__"+filename)) 
 +        ) {
  
-    try { +      String line
-      String filename; +      while ((line reader.readLine()) != null) { 
-      if(args.length > 0) +        writer.println(line);
-        filename = args[0]; +
-      else +
-        filename = "xanadu.txt"; +
-         +
-      inputStream = new BufferedReader(new FileReader(filename)); +
-      outputStream = new PrintWriter(new FileWriter("__"+filename)); +
- +
-      String l+
-      while ((inputStream.readLine()) != null) { +
-        outputStream.println(l);+
       }       }
-    } finally { +    } 
-      if (inputStream != null) { +
-        inputStream.close(); +
-      } +
-      if (outputStream != null) { +
-        outputStream.close(); +
-      } +
-    }+
   }   }
 } }
java/character_streams.txt · Last modified: 2021/04/04 16:20 (external edit)