java:write_to_file

Differences

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

Link to this comparison view

java:write_to_file [2016/03/30 10:05]
gthanos created
java:write_to_file [2017/02/07 11:42]
Line 1: Line 1:
-====== Γράφοντας σε αρχείο ====== 
- 
-===== Γράφοντας σε αρχεία κειμένου ===== 
- 
-Προκειμένου να γράψετε κείμενο σε αρχείο ή στην κονσόλα μπορείτε να χρησιμοποιήσετε την κλάση [[https://docs.oracle.com/javase/7/docs/api/java/io/PrintWriter.html|java.io.PrintWriter]].  
- 
-**Κατασκευαστές** 
-  * ''PrintWriter(String fileName)'' : Κατασκευάζει ένα αντικείμενο της κλάσης //PrintWriter// από ένα αρχείο filename. 
-  * ''PrintWriter(File file)'' : Κατασκευάζει ένα αντικείμενο της κλάσης //PrintWriter// από ένα αντικείμενο της κλάσης //File//. 
- 
-**Μέθοδοι** 
-  * ''void print(String s)'' : Εκτυπώνει το String s. 
-  * ''void println(String s)'' : Εκτυπώνει το String s ακολουθούμενο από χαρακτήρα αλλαγής γραμμής. 
-  * ''PrintWriter printf(String format, Object... args)'': Η συγκεκριμένη μέθοδος είναι ανάλογη με την printf της γλώσσας C. Μπορείτε να διαμορφώσετε κατάλληλα μορφοποιημένη έξοδo. Για παράδειγμα, η παρακάτω έκφραση εκτυπώνει έναν αριθμό κινητής υποδιαστολής μέσα σε ένα String ως εξής: 
-<code java TestPrintf.java> 
-import java.io.*; 
- 
-public class TestPrintf { 
-  public static void main(String args[]) { 
-    double f = 754.541012; 
-    System.out.printf("The value of f is: %08.2f %n", f); 
-  } 
-} 
-//Το σύμβολο %n συμβολίζει τον χαρακτήρα αλλαγής γραμμής. 
-</code> 
- 
-  * ''PrintWriter format(String format, Object... args)'': Ισοδύναμη με την printf. 
- 
-Δείτε την παρακάτω κλάση //CopyTextFile// η οποία λαμβάνει ως είσοδο στη μέθοδο //main// τα ονόματα δύο αρχείων κειμένου και αντιγράφει τα περιεχόμενα του πρώτου στο 2ο αρχείο. 
- 
-<code java CopyTextFile.java> 
-import java.io.*; 
- 
-public class CopyTextFile { 
-  public static void main(String [] args) { 
-    if (args.length < 2) { 
-      System.err.println("Insufficient number of arguments!"); 
-      return; 
-    } 
-     
-    File readFile = new File(args[0]); 
-    File writeFile = new File(args[1]); 
-     
-    if( !readFile.isFile() ) { 
-      System.err.println("Input file does not exist or is not a regular file!"); 
-      return; 
-    } 
-    if( !readFile.canRead() ) { 
-      System.err.println("Input file is not readable!"); 
-      return; 
-    } 
-    if( writeFile.exists() ) { 
-      System.err.println("Output file exists! Unable to overwrite."); 
-      return; 
-    } 
-     
-    try { 
-      String input; 
-      BufferedReader in = new BufferedReader(new FileReader(readFile)); 
-      PrintWriter out = new PrintWriter(writeFile); 
-      while( (input = in.readLine()) != null ) { 
-        out.println(input); 
-      } 
-      out.close(); 
-      in.close(); 
-    } catch( IOException ex ) { 
-      ex.printStackTrace(); 
-    } 
-  } 
-} 
-</code> 
- 
-===== Γράφοντας σε δυαδικά αρχεία ===== 
- 
-Προκειμένου να γράψετε σε δυαδικά αρχεία η Java διαθέτει την κλάση [[https://docs.oracle.com/javase/7/docs/api/java/io/FileOutputStream.html|java.io.FileOutputStream]]. Θα δούμε τις μεθόδους και την χρήση της αναλυτικά παρακάτω 
- 
-**Κατασκευαστές** 
-  * ''FileOutputStream(String filename)'' : Δημιουργεί ένα αντικείμενο της κλάσης //FileOutputStream// από το αρχείο με όνομα filename. Στη θέση του //String// filename θα πρέπει να βάλετε το path προς το αρχείο και όχι μόνο το όνομα του. 
-  * ''FileOutputStream(File file)'' : Δημιουργεί ένα αντικείμενο της κλάσης //FileOutputStream// από ένα αντικείμενο της κλάσης //File//. 
- 
-**Μέθοδοι** 
-  * ''public void write(byte[] b)'' : Γράφει //b.length bytes// στο συγκεκριμένο outputStream. 
-  * ''void write(byte[] b, int off, int len)'' : Αντιγράφει στο outputStream //len bytes// από τον πίνακα //b// ξεκινώντας από την θέση off του πίνακα. Εάν θέσετε off=0 αντιγράφει από την αρχή του πίνακα. 
- 
-Δείτε την παρακάτω κλάση //CopyBinFile// η οποία λαμβάνει ως είσοδο στη μέθοδο //main// τα ονόματα δύο οποιονδήποτε αρχείων και αντιγράφει τα περιεχόμενα του πρώτου στο 2ο αρχείο. 
- 
-<code java CopyBinFile.java> 
-import java.io.*; 
- 
-public class CopyBinFile { 
-  public static void main(String [] args) { 
-    if (args.length < 2) { 
-      System.err.println("Insufficient number of arguments!"); 
-      return; 
-    } 
-     
-    File readFile = new File(args[0]); 
-    File writeFile = new File(args[1]); 
-     
-    if( !readFile.isFile() ) { 
-      System.err.println("Input file does not exist or is not a regular file!"); 
-      return; 
-    } 
-    if( !readFile.canRead() ) { 
-      System.err.println("Input file is not readable!"); 
-      return; 
-    } 
-    if( writeFile.exists() ) { 
-      System.err.println("Output file exists! Unable to overwrite."); 
-      return; 
-    } 
-     
-    try { 
-      byte []buffer = new byte[2048]; 
-      FileInputStream in = new FileInputStream(readFile); 
-      FileOutputStream out = new FileOutputStream(writeFile); 
-      int read_len; 
-      while( (read_len = in.read(buffer)) != -1 ) { 
-        out.write(buffer, 0, read_len); 
-      } 
-      out.close(); 
-      in.close(); 
-    } catch( IOException ex ) { 
-      ex.printStackTrace(); 
-    } 
-  } 
-} 
-</code> 
- 
  
java/write_to_file.txt · Last modified: 2017/02/07 11:42 (external edit)