java:buffered_io
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
java:buffered_io [2017/02/07 12:16] – [Buffered I/O] gthanos | java:buffered_io [2017/02/07 12:30] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 11: | Line 11: | ||
- | ===== Διαβάζοντας και γράφοντας περισσότερα από ένα bytes σε δυαδικό αρχείο ===== | ||
- | Παρακάτω θα ξαναγράψουμε το πρόγραμμα CopyBytes μόνο που αυτή τη φορά το διάβασμα των bytes δεν θα γίνει ένα-ένα (unbuffered), | ||
- | |||
- | <code java CopyBufferedBytes.java> | ||
- | import java.io.*; | ||
- | |||
- | public class CopyBufferedBytes { | ||
- | public static void main(String[] args) throws IOException { | ||
- | |||
- | BufferedInputStream in = null; | ||
- | BufferedOutputStream out = null; | ||
- | final int buffer_size = 256; | ||
- | byte []buffer = new byte[buffer_size]; | ||
- | |||
- | try { | ||
- | String filename; | ||
- | if(args.length > 0) | ||
- | filename = args[0]; | ||
- | else | ||
- | filename = " | ||
- | | ||
- | in = new BufferedInputStream(new FileInputStream(filename)); | ||
- | out = new BufferedOutputStream(new FileOutputStream(" | ||
- | int size; | ||
- | |||
- | while ((size = in.read(buffer, | ||
- | out.write(buffer, | ||
- | } | ||
- | } finally { | ||
- | if (in != null) { | ||
- | in.close(); | ||
- | } | ||
- | if (out != null) { | ||
- | out.close(); | ||
- | } | ||
- | } | ||
- | } | ||
- | } | ||
- | </ | ||
- | |||
- | ===== Διαβάζοντας και γράφοντας γραμμή-γραμμή σε αρχείο κειμένου ===== | ||
- | |||
- | Η διαδικασία ανάγνωσης ή διαβάσματος χαρακτήρων λαμβάνουν χώρα συνήθως σε ομάδες χαρακτήρων. Μια συνηθισμένη | ||
- | |||
- | Ας τροποποιήσουμε το παράδειγμα // | ||
- | |||
- | Το παράδειγμα [[CopyLines]] επικαλείται τις BufferedReader.readLine και PrintWriter.println για να διαβάσει και να γράψει μία γραμμή κάθε φορά. | ||
- | |||
- | <code java CopyLines.java> | ||
- | import java.io.*; | ||
- | |||
- | public class CopyLines { | ||
- | public static void main(String[] args) throws IOException { | ||
- | |||
- | BufferedReader inputStream = null; | ||
- | PrintWriter outputStream = null; | ||
- | |||
- | try { | ||
- | String filename; | ||
- | if(args.length > 0) | ||
- | filename = args[0]; | ||
- | else | ||
- | filename = " | ||
- | | ||
- | inputStream = new BufferedReader(new FileReader(filename)); | ||
- | outputStream = new PrintWriter(new FileWriter(" | ||
- | |||
- | String l; | ||
- | while ((l = inputStream.readLine()) != null) { | ||
- | outputStream.println(l); | ||
- | } | ||
- | } finally { | ||
- | if (inputStream != null) { | ||
- | inputStream.close(); | ||
- | } | ||
- | if (outputStream != null) { | ||
- | outputStream.close(); | ||
- | } | ||
- | } | ||
- | } | ||
- | } | ||
- | </ | ||
- | |||
- | Η κλήση της // | ||
java/buffered_io.1486469799.txt.gz · Last modified: 2017/02/07 12:16 (external edit)