Klonowanie



Pobieranie 10,84 Kb.
Data18.03.2018
Rozmiar10,84 Kb.

Przykłady operacji wejścia/wyjścia wykorzystujące biblioteki Javy oparte na wzorcu ‘iterator

Czytanie pliku wierszami

Czytanie liczb z klawiatury

BufferedReader in=new BufferedReader(
new FileReader(“plik.txt”));

String s;

while ((s=in.readLine())!=null)

System.out.println(s);

in.close();


BufferedReader stdin=new BufferedReader(
new InputStreamReader(System.in));

double d=Double.parseDouble(stdin.readLine());


- readLine() z BufferedInputStream nie działa dobrze.


Czytanie ze String’a

Czytanie sformatowane z pamięci

String s=”abcde”;

StringReader sin=new StringReader(s);

char c;

while ((c=sin.read())!=-1) {c=(char)int; … }


- StringBufferInputStream nie jest polecany – nie konwertuje
prawidłowo znaków do bajtów.


String s= “abcd”; byte b;

DataInputStream in=new DataInputStream(


new ByteArrayInputStream(s.getBytes()));

while (in.available() > 0) { b=in.readByte(); … }



- można też czytać inne typy, ale trzeba sprawdzać inaczej (wielokrotność
rozmiaru)


Wyjście do pliku

Kompresja danych GZIP

PrintWriter out=new PrintWriter(new BufferedWriter(new FileWriter(“plik.txt”)));

out.println(“Nowy tekst z liczbą: “+15);

out.close(); !!!ważne, żeby opróżnić bufor


PrintWriter gzipout=new PrintWriter(

new BufferedWriter(

new OutputStreamWriter(

new java.util.zip.GZIPOutputStream(


new FileOutputStream("Data.gzip")))));

gzipout.println("Hello WORLD !!!");

gzipout.close();

- format ZIP jest o wiele bardziej bogaty



Zapis i odczyt sformatowany

Zapis do potoku i odczyt z niego

DataOutputStream out=new DataOutputStream(
new BufferedOutputStream(

new FileOutputStream(“Data.txt”);

out.writeUTF(“Liczba PI”); out.writeDouble(3.1415);

out.close();

DataInputStream in=new DataInputStream(
new BufferedInputStream(

new FileInputStream(“Data.txt”);

System.out.println(in.readUTF()+” “+ in.readDouble());

- trzeba znać kolejność zapisu.



PipedOutputStream pout=new PipedOutputStream();

DataOutputStream out=new DataOutputStream(pout);

PipedInputStream pin=newPipedInputStream(pout);

out.writeUTF(“Wiadomość nr.”);out.writeUTF(“1”);

out.close();

...//na przykład w innym wątku

DataInputStream in=new DataInputStream(pin);

while (pin.available()>0)

System.out.println(in.readUTF());

in.close();





©operacji.org 2019
wyślij wiadomość

    Strona główna