Commit f9b7c3b0 by Patryk Czarnik

PrintWriter

parent b605f285
package p14_napisy; package p14_napisy;
import java.util.ArrayList;
import java.util.List;
public class ParametryString { public class ParametryString {
public static void main(String[] args) { public static void main(String[] args) {
...@@ -8,8 +11,20 @@ public class ParametryString { ...@@ -8,8 +11,20 @@ public class ParametryString {
System.out.println("a1 = " + a); System.out.println("a1 = " + a);
m(a); m(a);
System.out.println("a2 = " + a); System.out.println("a2 = " + a);
// String is immutable // String is immutable
// Zmienna final String byłaby niezmienialna w żaden sposób.
// Ale samo słowo final działa "płytko". Np. tutaj oznacza,
// że w zmiennej lista do końca programu będzie ten sam obiekt listy,
// ale wnętrze listy może się zmieniać, bo ArrayList jest mutowalna.
final List<String> lista = new ArrayList<>();
lista.add("Ala");
System.out.println(lista);
lista.add("Ola");
lista.add("Ela");
System.out.println(lista);
// btw, List.of("Ala", "Ola", "Ela"); jest niemutowalne; operacje add / remove wyrzucaja wyjątki
} }
static void m(String c) { static void m(String c) {
......
package p14_napisy;
import java.time.LocalDate;
import java.util.concurrent.atomic.AtomicInteger;
public class Wrappery {
static void test(int a, Integer b, AtomicInteger c) {
System.out.println(a + " " + b + " " + c);
a += 1;
b += 1;
c.addAndGet(1);
System.out.println(a + " " + b + " " + c);
}
public static void main(String[] args) {
int a = 100;
Integer b = 200;
AtomicInteger c = new AtomicInteger(300);
System.out.println(a + " " + b + " " + c);
test(a, b, c);
System.out.println(a + " " + b + " " + c);
}
}
package p16_pliki;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.time.LocalTime;
public class Zapis1 {
public static void main(String[] args) {
System.out.println("Start");
try {
PrintWriter out = new PrintWriter("nowy1.txt");
out.println("Pierwsza linia");
out.println("Druga linia");
out.println("Czas modyfikacji: " + LocalTime.now());
// w tej wersji "zapominamy" zamknąć plik - dane wysłane do pliku nie zostały w nim zapisane...
} catch (FileNotFoundException e) {
throw new RuntimeException(e);
}
System.out.println("Koniec");
}
}
package p16_pliki;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.time.LocalTime;
public class Zapis2 {
public static void main(String[] args) {
LocalTime now = LocalTime.now();
System.out.println("Start o " + now);
// ostatnia cyfra sekundy
int cyfra = now.getSecond() % 10;
try {
PrintWriter out = new PrintWriter("nowy2.txt");
out.println("Pierwsza linia");
out.println("Druga linia");
out.println("Czas modyfikacji: " + now);
int wynik = 100 / cyfra;
out.println("Wynik dzielenia: " + wynik);
out.println("Ostatnia linia");
out.close();
// Gdy podczas dzielenia dojdzie do błędu, to ten close zostanie pominięty
// i plik prawdopodobnie pozostanie pusty.
} catch (FileNotFoundException e) {
System.out.println(e.getMessage());
}
System.out.println("Koniec");
}
}
package p16_pliki;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.time.LocalTime;
public class Zapis3_Try_With_Resources {
public static void main(String[] args) {
LocalTime now = LocalTime.now();
System.out.println("Start o " + now);
// ostatnia cyfra sekundy
int cyfra = now.getSecond() % 10;
// Od Java 7 mamy konstrukcję "try-with-resources"
// w momencie wychodzenia z tego bloku (ale także w sposób wyjątkowy) na obiekcie out zostanie wywołane close
try(PrintWriter out = new PrintWriter("nowy3.txt")) {
out.println("Pierwsza linia");
out.println("Druga linia");
out.println("Czas modyfikacji: " + now);
int wynik = 100 / cyfra;
out.println("Wynik dzielenia: " + wynik);
out.println("Ostatnia linia");
} catch (FileNotFoundException e) {
System.out.println(e.getMessage());
}
System.out.println("Koniec");
}
}
package p16_pliki;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.time.LocalTime;
public class Zapis4_Try_Finally {
public static void main(String[] args) {
LocalTime now = LocalTime.now();
System.out.println("Start o " + now);
// ostatnia cyfra sekundy
int cyfra = now.getSecond() % 10;
// Przed Javą 7 oraz gdy klasa nie implementuje interfejsu AutoCloseable
// można użyć sekcji finally w taki sposób:
PrintWriter out = null;
try {
out = new PrintWriter("nowy2.txt");
out.println("Pierwsza linia");
out.println("Druga linia");
out.println("Czas modyfikacji: " + now);
int wynik = 100 / cyfra;
out.println("Wynik dzielenia: " + wynik);
out.println("Ostatnia linia");
} catch (FileNotFoundException e) {
System.out.println(e.getMessage());
} finally {
if (out != null) {
out.close();
}
}
System.out.println("Koniec");
}
}
package p16_pliki;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.time.LocalTime;
public class ZapisLiczb1 {
public static void main(String[] args) {
System.out.println("Start");
try {
PrintWriter out = new PrintWriter("liczby1.txt");
for(int i = 1; i <= 10_000; i++) {
out.println(i);
// operacja flush wymusiłaby fizyczny zapis w pliku tym momencie - ale to zmniejsza wydajność
// out.flush();
}
// tutaj "zapominam" zamknąć plik - w pliku jest tylko _część_ liczb
} catch (FileNotFoundException e) {
throw new RuntimeException(e);
}
System.out.println("Koniec");
}
}
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