Java: Textový vstup a výstup

Z MiS
Přejít na: navigace, hledání


Obsah

Ošetření chyb, výjimky

try { // Začni provádět kód, ve kterém může nastat chybový stav...
    ... zde následuje kód, pracující se souborem...
} catch (IOException ex) { 
    // Co se má stát, pokud nastane chyba při práci se souborem...
} catch (FileNotFoundException ex) { 
    // Co se má stát, když zadaný soubor vůbec neexistuje
} 


Čtení ze souboru (Scanner)

= Třída Scanner

Třídu Scanner nepoužívejte v programech, které pracují s vlákny!

Otevření souboru

Konstruktory třídy Scanner

Kódování národních znaků:


Pokud nenastavíte správné kódování českých znaků, třída Scanner se při ladění v prostředí NetBeans 8.0.2 (JDK 7u71) může chovat k souboru, jako by byl prázdný.

Pokud máte podobné problémy, zkuste:

a) nastavte správné kódování češtiny v konstruktoru Scanneru či zkonvertujte soubor na správné kódování (třeba pomocí Notepadu++ či jiného editoru, který umí nastavit kódování).

b) projekt přeložte (Clean & Build) a spusťte přímo výsledný JAR ze složky dist v adresáři projektu. (viz Export balíčku JAR).

Metody třídy Scanner

out.useDelimiter("\\s*[;,\n\r\t]\\s*")

Příklad: Načtení čísel ze souboru

Scanner sc = new Scanner(new File("myNumbers"));
while (sc.hasNextLong()) {
    ...
    long aLong = sc.nextLong();
    ...
}
sc.close();


Příklad: Načtení všech řádků textu ze souboru

Scanner sc = new Scanner(new File("myRows"), "windows-1250");
while (sc.hasNextLine()) {
    ...
    String radek = sc.nextLine();
    ...
}
sc.close();

Příklad: Načtení jednoho čísla z klávesnice =

Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
vstup=input.next();
sc.close();



Zápis do souboru (BufferedWriter)

Třída BufferedWriter slouží pro zápis dat do textového výstupu.

Princip
Otevření standardního výstupu
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(System.out));

Tuto variantu používáme tehdy, kdy chceme společnou metodu pro psaní do souboru i na standardní výstup. Pro standardní výstup jinak samozřejmě stačí:

System.out.println(...);
Otevření souboru
Charset kodovani = Charset.forName("utf-8");
Path cesta = Paths.get("vystup.txt");
BufferedWriter out = Files.newBufferedWriter(cesta, kodovani);

Související třídy:

Metody
Charset kodovani = Charset.forName("utf-8");
Path cesta = Paths.get("vystup.txt");
BufferedWriter out = Files.newBufferedWriter(cesta, kodovani);
out.write("blabla");
out.newLine();
out.close();



Standardní vstup a výstup

System.out
System.out.print("Ahoj!");
System.out.println("Vypíše řádek na obrazovku!");
System.in
System.in.read();
System.in.available() > 0


Související stránky


Zdroje

  1. JavaPractices.com → Reading and writing text files
  2. Java Tutorial → Scanner
Osobní nástroje
Jmenné prostory
Varianty
Akce
Výuka
Navigace
Nástroje