java:write_to_file

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
java:write_to_file [2016/03/31 08:19]
doufexi [Γράφοντας σε δυαδικά αρχεία]
java:write_to_file [2017/04/28 10:56] (current)
gthanos [Παράδειγμα εγγραφής σε αρχείο κειμένου]
Line 27: Line 27:
   * ''​PrintWriter format(String format, Object... args)'':​ Ισοδύναμη με την printf.   * ''​PrintWriter format(String format, Object... args)'':​ Ισοδύναμη με την printf.
  
-Δείτε την παρακάτω κλάση //​CopyTextFile//​ η οποία ​λαμβάνει ως είσοδο στη μέθοδο //main// τα ονόματα δύο ​αρχείων κειμένου ​και ​αντιγράφει τα περιεχόμενα του πρώτου στο 2ο αρχείο.+==== Παράδειγμα εγγραφής σε αρχείο κειμένου ==== 
 + 
 +Δείτε την παρακάτω κλάση //​CopyTextFile//​ η οποία αντιγράφει το περιεχόμενο ενός αρχείου κειμένου ​σε ένα νέο με την προϋπόθεση ότι το νέο αρχείο ​δεν υφίσταται ήδη στο filesystem
  
 <code java CopyTextFile.java>​ <code java CopyTextFile.java>​
 import java.io.*; import java.io.*;
 +import java.util.*;​
  
 public class CopyTextFile { public class CopyTextFile {
   public static void main(String [] args) {   public static void main(String [] args) {
-    ​if (args.length < 2{ +    ​Scanner sc = new Scanner(System.in); 
-      System.err.println("Insufficient number of arguments!")+    System.out.print("Enter src filename: ​"); 
-      return+    ​String readFilename ​sc.next(); 
-    ​+    File readFile ​= new File(readFilename);
-     +
-    File readFile ​new File(args[0]); +
-    File writeFile ​= new File(args[1]);+
     ​     ​
     if( !readFile.isFile() ) {     if( !readFile.isFile() ) {
Line 50: Line 50:
       return;       return;
     }     }
 +    ​
 +    System.out.print("​Enter dst filename: ");
 +    String writeFilename = sc.next();
 +    File writeFile = new File(writeFilename);​
 +    ​
     if( writeFile.exists() ) {     if( writeFile.exists() ) {
       System.err.println("​Output file exists! Unable to overwrite."​);​       System.err.println("​Output file exists! Unable to overwrite."​);​
Line 70: Line 75:
 } }
 </​code>​ </​code>​
 +
 +<WRAP todo 80% center round>
 +Με χρήση του παραπάνω προγράμματος προσπαθήστε να αντιγράψετε μία εικόνα. Τι παρατηρείτε;​ Γιατί;
 +</​WRAP>​
  
 ===== Γράφοντας σε δυαδικά αρχεία ===== ===== Γράφοντας σε δυαδικά αρχεία =====
  
-Προκειμένου να γράψετε σε δυαδικά αρχεία η Java διαθέτει την κλάση [[https://​docs.oracle.com/​javase/​7/​docs/​api/​java/​io/​FileOutputStream.html|java.io.FileOutputStream]]. Θα δούμε τις μεθόδους και την χρήση της αναλυτικά παρακάτω+Προκειμένου να γράψετε σε δυαδικά αρχεία ​(εικόνες,​ ήχο, βίντεο κλπ) ​η Java διαθέτει την κλάση [[https://​docs.oracle.com/​javase/​7/​docs/​api/​java/​io/​FileOutputStream.html|java.io.FileOutputStream]]. Θα δούμε τις μεθόδους και την χρήση της αναλυτικά παρακάτω
  
 **Κατασκευαστές** **Κατασκευαστές**
Line 83: Line 92:
   * ''​void write(byte[] b, int off, int len)''​ : Αντιγράφει στο outputStream //len bytes// από τον πίνακα //b// ξεκινώντας από την θέση off του πίνακα. Εάν θέσετε off=0 αντιγράφει από την αρχή του πίνακα.   * ''​void write(byte[] b, int off, int len)''​ : Αντιγράφει στο outputStream //len bytes// από τον πίνακα //b// ξεκινώντας από την θέση off του πίνακα. Εάν θέσετε off=0 αντιγράφει από την αρχή του πίνακα.
  
-Δείτε την παρακάτω κλάση //​CopyBinFile// ​η οποία λαμβάνει ως είσοδο στη μέθοδο ​//main// τα ονόματα δύο ​οποιονδήποτε αρχείων και αντιγράφει τα περιεχόμενα ​του πρώτου στο ​2ο αρχείο.+==== Παράδειγμα εγγραφής σε δυαδικό αρχείο ==== 
 + 
 +Δείτε την παρακάτω κλάση //​CopyBinFile// ​ποτελεί παραλλαγή της //CopyTextFile//), η οποία αντιγράφει το περιεχόμενο ενός ​αρχείου σε ένα νέο με την ​προϋπόθεση ότι ​το νέο αρχείο ​δεν υφίσταται ήδη στο filesystem.
  
 <code java CopyBinFile.java>​ <code java CopyBinFile.java>​
 import java.io.*; import java.io.*;
 +import java.util.*;​
  
 public class CopyBinFile { public class CopyBinFile {
   public static void main(String [] args) {   public static void main(String [] args) {
-    if (args.length < 2) { 
-      System.err.println("​Insufficient number of arguments!"​);​ 
-      return; 
-    } 
     ​     ​
-    ​File readFile ​= new File(args[0]); +    ​Scanner sc = new Scanner(System.in);​ 
-    File writeFile ​= new File(args[1]);+    System.out.print("​Enter src filename: "); 
 +    String readFilename = sc.next(); 
 +    File readFile ​= new File(readFilename);
     ​     ​
     if( !readFile.isFile() ) {     if( !readFile.isFile() ) {
Line 106: Line 116:
       return;       return;
     }     }
 +    ​
 +    System.out.print("​Enter dst filename: ");
 +    String writeFilename = sc.next();
 +    File writeFile = new File(writeFilename);​
 +    ​
     if( writeFile.exists() ) {     if( writeFile.exists() ) {
       System.err.println("​Output file exists! Unable to overwrite."​);​       System.err.println("​Output file exists! Unable to overwrite."​);​
Line 128: Line 143:
 </​code>​ </​code>​
  
-|Προηγούμενο:​ [[ :​java:​read_from_file | Διαβάζοντας από ένα αρχείο ]] | [[ :toc | Περιεχόμενα ]] | Επόμενο:​ [[ :java:array_list ​Η κλάση ArrayList]] |+|Προηγούμενο:​ [[ :​java:​read_from_file | Διαβάζοντας από ένα αρχείο ]] | [[ :toc | Περιεχόμενα ]] | Επόμενο:​ [[ :java:object_serialization ​Object Serialization ​]] |
  
java/write_to_file.1459412397.txt.gz · Last modified: 2016/03/31 08:19 by doufexi