java:write_to_file

This is an old revision of the document!


A PCRE internal error occured. This might be caused by a faulty plugin

====== Γράφοντας σε αρχείο ====== ===== Γράφοντας σε αρχεία κειμένου ===== Προκειμένου να γράψετε κείμενο σε αρχείο ή στην κονσόλα μπορείτε να χρησιμοποιήσετε την κλάση [[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:read_from_file | Διαβάζοντας από ένα αρχείο ]] | [[ :toc | Περιεχόμενα ]] | Επόμενο: [[ :java:array_list | Η κλάση ArrayList]] |

java/write_to_file.1459412397.txt.gz · Last modified: 2016/03/31 08:19 by doufexi