Commit f2a448c1 by Patryk Czarnik

alternatywne sposoby czytania plików

parent 371d5058
package p13_pliki.podstawy;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
/* Klasa BufferedReader też potrafi czytać kolejne linie z pliku, a jest prostsza od Scannera,
* działa prawie 2x szybciej niż Scanner.
*
* W tej wersji:
* - obiekt BufferedReader tworzymy w tradycyjny sposób w oparciu o "new"
* - pętlę przerywamy za pomocą break (null oznacza koniec pliku)
*/
public class Odczyt3_BufferedReader {
public static void main(String[] args) {
System.out.println("Startujemy");
try(BufferedReader in = new BufferedReader(new FileReader("plik.txt"))) {
while(true) {
String linia = in.readLine();
if(linia == null)
break;
System.out.println(linia);
}
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("Gotowe");
}
}
package p13_pliki.podstawy;
import java.io.BufferedReader;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
/* Klasa BufferedReader też potrafi czytać kolejne linie z pliku, a jest prostsza od Scannera,
* działa prawie 2x szybciej niż Scanner.
*
* W tej wersji:
* - obiekt BufferedReader uzyskujemy za pośrednictwem klasy Files
* - w warunku while umieszczamy instrukcję przypisania i operację readLine
*/
public class Odczyt4_BufferedReader {
public static void main(String[] args) {
System.out.println("Startujemy");
try(BufferedReader in = Files.newBufferedReader(Paths.get("plik.txt"))) {
String linia;
while((linia = in.readLine()) != null) {
System.out.println(linia);
}
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("Gotowe");
}
}
package p13_pliki.podstawy;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;
// Od Java 7 istnieje klasa Files, która posiada b. dużo gotowych operacji na plikach.
// readAllLines czyta całą treść pliku tekstowego w formie listy linii.
// Cała treść jest wczytywana do pamięci - to jest kosztowne dla dużych plików.
public class Odczyt5_ReadAllLines {
public static void main(String[] args) {
try {
List<String> lines = Files.readAllLines(Paths.get("plik.txt"));
System.out.println("Odczytanych linii: " + lines.size());
for (String line : lines) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
package p13_pliki.podstawy;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
public class Odczyt6_Stream {
// Przetwarzanie strumieniowe (od Java 8).
// Wszystkie linie NIE SĄ wczytywane na raz, tylko są przetwarzane pojedynczo.
public static void main(String[] args) {
try {
Files.lines(Paths.get("plik.txt"))
.filter(line -> !line.isBlank())
.forEach(line -> System.out.println(line));
} catch (IOException e) {
e.printStackTrace();
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment