User Tools

Site Tools


java:buffered_io

Differences

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

Link to this comparison view

Next revision
Previous revision
Next revision Both sides next revision
java:buffered_io [2017/02/07 11:22]
gthanos created
java:buffered_io [2017/02/07 12:16]
gthanos [Buffered I/O]
Line 1: Line 1:
 ====== Buffered I/O ====== ====== Buffered I/O ======
  
-Τα περισσότερα από τα παραδείγματα που έχουμε δει μέχρι στιγμής χρησιμοποιούν //unbuffered// I / O. Αυτό σημαίνει ότι κάθε αίτημα ανάγνωσης ή εγγραφής χειρίζεται απευθείας από το υποκείμενο λειτουργικό σύστημα. Αυτό μπορεί να κάνει ένα πρόγραμμα πολύ λιγότερο αποτελεσματικό, δεδομένου ότι κάθε τέτοιο αίτημα, προκαλεί συχνά την πρόσβαση δίσκου, τη δραστηριότητα του δικτύου, ή κάποια άλλη ενέργεια που είναι σχετικά ακριβή. +Τα περισσότερα από τα παραδείγματα που έχουμε δει μέχρι στιγμής διαβάζουν ή γράφουν ένα byte κάθε φορά (unbuffered streams). Προκειμένου να μπορούμε να χειριζόμαστε περισσότερα δεδομένα σε κάθε κλήση συστήματος, η πλατφόρμα της Java υλοποιεί //buffered// I/O streams. Παρακάτω δίνεται πώς μπορείτε να τροποποιήσετε τις κλήσεις constructor στο παράδειγμα //CopyCharacters// για να χρησιμοποιούν buffered I/O:
- +
-Για να μειωθεί αυτό το είδος overhead, η πλατφόρμα της Java υλοποιεί //buffered// I / O streams. Τα buffered streams εισόδου διαβάζουν δεδομένα από μια περιοχή μνήμης που είναι γνωστή ως //buffer//. Ομοίως, τα buffered streams εξόδου γράφουν δεδομένα σε ένα //buffer//+
- +
-Ένα πρόγραμμα μπορεί να μετατρέψει ένα unbuffered stream  σε ένα buffered stream χρησιμοποιώντας το ιδίωμα περιτυλίγματος που έχουμε χρησιμοποιήσει αρκετές προηγούμενα, όπου το unbuffered stream περνά στον  constructor για μια buffered stream κλάση. Παρακάτω δίνεται πώς μπορείτε να τροποποιήσετε τις κλήσεις constructor στο παράδειγμα //CopyCharacters// για να χρησιμοποιούν buffered I / O:+
  
 <code java> <code java>
Line 15: Line 11:
  
  
-===== Διαβάζοντας και γράφοντας περισσότερα bytes σε δυαδικό αρχείο =====+===== Διαβάζοντας και γράφοντας περισσότερα από ένα bytes σε δυαδικό αρχείο =====
  
 Παρακάτω θα ξαναγράψουμε το πρόγραμμα CopyBytes μόνο που αυτή τη φορά το διάβασμα των bytes δεν θα γίνει ένα-ένα (unbuffered), αλλά θα διαβάζονται και θα γράφονται ακολουθίες των 512 bytes με την βοήθεια των κλάσεων [[http://docs.oracle.com/javase/7/docs/api/java/io/BufferedInputStream.html|BufferedInputStream]] και [[http://docs.oracle.com/javase/7/docs/api/java/io/BufferedOutputStream.html|BufferedOutputStream]]. Παρακάτω θα ξαναγράψουμε το πρόγραμμα CopyBytes μόνο που αυτή τη φορά το διάβασμα των bytes δεν θα γίνει ένα-ένα (unbuffered), αλλά θα διαβάζονται και θα γράφονται ακολουθίες των 512 bytes με την βοήθεια των κλάσεων [[http://docs.oracle.com/javase/7/docs/api/java/io/BufferedInputStream.html|BufferedInputStream]] και [[http://docs.oracle.com/javase/7/docs/api/java/io/BufferedOutputStream.html|BufferedOutputStream]].
java/buffered_io.txt · Last modified: 2017/02/07 12:30 (external edit)