Puskuroitu I/O
Tutustukaa puskuroituihin virtoihin: BufferedInputStream- ja BufferedOutputStream-luokat tehokkaaseen tavumuotoiseen I/O:hon.
Puskuroitu I/O on ilmainen Java Academy-oppitunti CoddyKitissä. Tämä on oppitunti 3/3. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Java Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Java Academy-kurssilla on yhteensä 3 oppituntia.
Johdanto
Puskuroidut virrat nopeuttavat tiedostojen I/O-toimintoja. Ne yhdistävät useita pieniä luku- ja kirjoitusoperaatioita suuremmiksi toiminnoiksi.
BufferedInputStream-käsite
BufferedInputStream toimii InputStreamin ympärillä ja lukee tavuryhmiä muistiin. Lukeminen nopeutuu, kun pieniä kutsuja on paljon.
Koodi: BufferedInputStream
Tässä tiedostosta luetaan tavuja puskuroinnin avulla. Tuloste näyttää tavuarvot välilyönneillä eroteltuina.
public class Main {
public static void main(String[] args) {
java.nio.file.Path p = java.nio.file.Paths.get("data.bin");
try (java.io.BufferedInputStream bis = new java.io.BufferedInputStream(java.nio.file.Files.newInputStream(p))) {
int b;
while ((b = bis.read()) != -1) {
System.out.print(b + " ");
}
} catch (java.io.IOException e) {
System.out.println("Error: " + e.getMessage());
}
}
}
BufferedOutputStream-käsite
BufferedOutputStream kerää tavut muistiin ennen kirjoittamista. Tämä vähentää levykirjoitusten määrää.
Koodi: BufferedOutputStream
Tämä kirjoittaa viisi tavua tiedostoon out.bin. BufferedOutputStream käsittelee puskurin erissä tehokkuuden parantamiseksi.
public class Main {
public static void main(String[] args) {
java.nio.file.Path p = java.nio.file.Paths.get("out.bin");
try (java.io.BufferedOutputStream bos = new java.io.BufferedOutputStream(java.nio.file.Files.newOutputStream(p))) {
for (int i = 0; i < 5; i++) {
bos.write(i); // write 5 bytes
}
} catch (java.io.IOException e) {
System.out.println("Error: " + e.getMessage());
}
}
}
Koodi: kopiointi puskuroitujen virtojen avulla
Puskuroidut virrat tekevät tiedostojen kopioimisesta helppoa ja tehokasta. Tiedosto luetaan ja kirjoitetaan tavupuskureita käyttämällä.
public class Main {
public static void main(String[] args) {
java.nio.file.Path in = java.nio.file.Paths.get("data.bin");
java.nio.file.Path out = java.nio.file.Paths.get("copy.bin");
try (java.io.BufferedInputStream bis = new java.io.BufferedInputStream(java.nio.file.Files.newInputStream(in));
java.io.BufferedOutputStream bos = new java.io.BufferedOutputStream(java.nio.file.Files.newOutputStream(out))) {
int b;
while ((b = bis.read()) != -1) {
bos.write(b);
}
} catch (java.io.IOException e) {
System.out.println("Error: " + e.getMessage());
}
}
}
Puskuroitujen virtojen tarkistus
Pikakysymys: miksi BufferedInputStreamia tai BufferedOutputStreamia käytetään?
Kertaus
Kertaus: Puskuroidut virrat parantavat suorituskykyä yhdistämällä pienet luku- ja kirjoitusoperaatiot suuremmiksi toiminnoiksi.
Opi Java tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 104
- Oppitunnit
- 374
Usein kysytyt kysymykset
Onko oppitunti ”Puskuroitu I/O” ilmainen?
Kyllä – oppitunnin ”Puskuroitu I/O” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Java Academy-kurssin, päivitä CoddyKit PROhon. Java Academy-kurssilla on yhteensä 3 oppituntia.
Mitä opin oppitunnilla ”Puskuroitu I/O”?
Tutustukaa puskuroituihin virtoihin: BufferedInputStream- ja BufferedOutputStream-luokat tehokkaaseen tavumuotoiseen I/O:hon. Harjoittelet Java Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Java Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Java Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/3.
Kuinka kauan ”Puskuroitu I/O”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Java Academy-oppitunnilla?
Kyllä. Jokainen Java Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.