This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
java:write_to_file [2017/02/17 11:18] gthanos |
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// η οποία αντιγράφει το περιεχόμενο ενός αρχείου σε ένα νέο με την προϋπόθεση ότι το νέο αρχείο δεν υφίσταται ήδη στο filesystem. | + | ==== Παράδειγμα εγγραφής σε δυαδικό αρχείο ==== |
| + | |||
| + | Δείτε την παρακάτω κλάση //CopyBinFile// (αποτελεί παραλλαγή της //CopyTextFile//), η οποία αντιγράφει το περιεχόμενο ενός αρχείου σε ένα νέο με την προϋπόθεση ότι το νέο αρχείο δεν υφίσταται ήδη στο filesystem. | ||
| <code java CopyBinFile.java> | <code java CopyBinFile.java> | ||
| Line 132: | Line 143: | ||
| </code> | </code> | ||
| - | |Προηγούμενο: [[ :java:read_from_file | Διαβάζοντας από ένα αρχείο ]] | [[ :toc | Περιεχόμενα ]] | Επόμενο: [[ :java:array_list | Η κλάση ArrayList]] | | + | |Προηγούμενο: [[ :java:read_from_file | Διαβάζοντας από ένα αρχείο ]] | [[ :toc | Περιεχόμενα ]] | Επόμενο: [[ :java:object_serialization | Object Serialization ]] | |