Hvad er forskellen mellem BufferedReader og InputStreamReader i Java?


Svar 1:
  • En InputStreamReader opretter et nyt streamobjekt, der kan bruges til at læse data fra den specificerede kilde. Det er en bro fra bytestrømme til karakterstrømme. Den læser bytes og afkoder dem til tegn ved hjælp af et specificeret tegnsæt. Charsættet, som det bruger, kan specificeres med navn, eller standardcharsættet til platforme kan accepteres. BufferedReader er en abstraktion, der læser tekst fra en karakterinputstrøm. Det buffer tegn for at give effektiv læsning af tegn og linjer. Det er en klasse, der bruges til at læse teksten fra en karakterbaseret inputstrøm. Det kan bruges til at læse data linje for linje efter readLine () -metoden. Det gør ydelsen hurtig. Det arver Reader-klassen.

Svar 2:

En InputStreamReader er en bro fra byte-strømme til tegnstrømme: Den læser byte og afkoder dem til tegn ved hjælp af et specificeret tegnesæt. Charsettet, det bruger, kan specificeres ved navn eller kan gives eksplicit, eller platformens standardcharset kan accepteres.

Hver tilkaldelse af en af ​​en InputStreamReaders læse () -metoder kan forårsage, at en eller flere byte læses fra den underliggende byte-input-strøm. For at muliggøre effektiv konvertering af byte til tegn kan der muligvis læses flere byte frem fra den underliggende strøm, end der er nødvendigt for at tilfredsstille den aktuelle læseoperation.

For at opnå topeffektivitet skal du overveje at indpakke en InputStreamReader i en BufferedReader. For eksempel:

 BufferedReader ind
   = ny BufferedReader (ny InputStreamReader (System.in));
public class BufferedReader udvider Reader

Læser tekst fra en karakterinputstrøm, buffer tegn for at sikre effektiv læsning af tegn, arrays og linjer.

Bufferstørrelsen kan specificeres, eller standardstørrelsen kan bruges. Standardindstillingen er stor nok til de fleste formål.

Generelt bevirker, at hver læseanmodning, der er foretaget af en læser, fremsendes en tilsvarende læseanmodning af den underliggende karakter eller byte-strøm. Det tilrådes derfor at vikle en BufferedReader omkring enhver læser, hvis læse () -operationer kan være kostbare, såsom FileReaders og InputStreamReaders. For eksempel,

 BufferedReader ind
   = ny BufferedReader (ny FileReader ("foo.in"));

Svar 3:

Reference: Decodejava.com præsenterer enkel og nem Java-tutorial

File Input / Output-operationer bruger mange vigtige ressourcer og er tidskrævende. Derfor er det hurtigere at læse en del af tegn ud af en fil og gemme den i en lokal buffer til senere behandling end at læse et tegn ad gangen ud af en fil.

Derfor bruges BufferedReader-klassen til at skabe en sådan bufferet læser-strøm, gennem hvilken en del af tegn læses ud af en fil og overføres til en lokal buffer til senere brug.

For mere om BufferedReader med simpelt kodeeksempel kan du læse Java BufferedReader Class - Decodejava.com

InputStreamReader er viklet omkring en inputstrøm (der læses i bytes) for at læse data i form af tegn derfra, og derfor fungerer InputStreamReader-klassen som en konverter af bytes til tegn.

For mere om InputStreamReader med simpelt kodeeksempel, kan du læse Java InputStreamReader Class - Decodejava.com

Håber det hjælper,

Held og lykke!


Svar 4:

Reference: Decodejava.com præsenterer enkel og nem Java-tutorial

File Input / Output-operationer bruger mange vigtige ressourcer og er tidskrævende. Derfor er det hurtigere at læse en del af tegn ud af en fil og gemme den i en lokal buffer til senere behandling end at læse et tegn ad gangen ud af en fil.

Derfor bruges BufferedReader-klassen til at skabe en sådan bufferet læser-strøm, gennem hvilken en del af tegn læses ud af en fil og overføres til en lokal buffer til senere brug.

For mere om BufferedReader med simpelt kodeeksempel kan du læse Java BufferedReader Class - Decodejava.com

InputStreamReader er viklet omkring en inputstrøm (der læses i bytes) for at læse data i form af tegn derfra, og derfor fungerer InputStreamReader-klassen som en konverter af bytes til tegn.

For mere om InputStreamReader med simpelt kodeeksempel, kan du læse Java InputStreamReader Class - Decodejava.com

Håber det hjælper,

Held og lykke!