Java: Textový vstup a výstup

Z MiS
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
m (Vstup (Scanner): Oprava upozornění na chybu NetBeans)
m (Zápis do souboru (BufferedWriter): Charset.forName(...) byla špatně.)
Řádka 17: Řádka 17:
  
 
; Otevření souboru
 
; Otevření souboru
  Charset kodovani = Charset.charsetForName("utf-8");
+
  Charset kodovani = Charset.forName("utf-8");
 
  Path cesta = Paths.get("vystup.txt");
 
  Path cesta = Paths.get("vystup.txt");
 
  BufferedWriter out = Files.newBufferedWriter(cesta, kodovani);
 
  BufferedWriter out = Files.newBufferedWriter(cesta, kodovani);
Řádka 37: Řádka 37:
 
** Provede i <code>flush()</code>.
 
** Provede i <code>flush()</code>.
  
  Charset kodovani = Charset.charsetForName("utf-8");
+
  Charset kodovani = Charset.forName("utf-8");
 
  Path cesta = Paths.get("vystup.txt");
 
  Path cesta = Paths.get("vystup.txt");
 
  BufferedWriter out = Files.newBufferedWriter(cesta, kodovani);
 
  BufferedWriter out = Files.newBufferedWriter(cesta, kodovani);
Řádka 43: Řádka 43:
 
  out.newLine();
 
  out.newLine();
 
  out.close();
 
  out.close();
 
  
 
== Vstup (<tt>Scanner</tt>) ==
 
== Vstup (<tt>Scanner</tt>) ==

Verze z 28. 4. 2015, 10:22


Obsah

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();

Vstup (Scanner)

Narazili jsme na problém, že třída Scanner se při ladění v prostředí NetBeans 8.0.2 (JDK 7u71) chovala se k souboru, jako by byl prázdný.

Pokud máte podobné problémy, zkuste projekt přeložit a spustit přímo výsledný JAR mimo NetBeans.

Třídu Scanner nepoužívejte v programech, které pracují s vlákny!
Metody
out.useDelimiter("\\s*[;,\n\r\t]\\s*")
Otevření vstupu
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
vstup=input.next();
Scanner sc = new Scanner(new File("myNumbers"));
while (sc.hasNextLong()) {
    ...
    long aLong = sc.nextLong();
    ...
}

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

Viz také


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