gitweb on Svarog

projekti pod git sistemom za održavanje verzija -- projects under the git version control system
Primeri za koriscenje steka i reda
[spa1-materijali.git] / kodovi / stek-i-red-opsluzivanja / MedjuSpremnik.java
1 /**
2 * Medjuspremnik (a.k.a. buffer) sluzi sa skladistenje podataka pre nego sto se
3 * proslede dalje.
4 *
5 * U ovom primeru se pokazuje kako se podaci prvo prikupljaju pre nego sto se
6 * zapravo ispisu, cime se dobija na efikasnosti ispisa, posto je tipicno
7 * operacija rada sa nekim spoljim uredjajem relativno spora u odnosu na interne
8 * operacije, a sa druge strane su takve operacije tipicno slicne brzine i kad
9 * se salje vise podataka odjednom.
10 *
11 * Naravno ovo je samo ilustracija, operacije ispisa i na ekran i na disk su
12 * tipicno vec optimizovane medjuspremnicima.
13 *
14 */
15 public class MedjuSpremnik {
17 public static final int VEL_SPREMNIKA = 33;
19 public static Red<Character> spremnik = new Red<>(VEL_SPREMNIKA);
21 public static String izlaznifajl = "izlaz.txt";
23 public static void pisiZnak(char c) {
24 if (spremnik.jePun()) {
25 isprazni();
26 }
27 spremnik.naKraj(c);
28 }
30 public static void isprazni() {
31 while (!spremnik.jePrazan()) {
32 char c = spremnik.izbaciPrvi();
33 Svetovid.out(izlaznifajl).print(c);
34 }
36 }
38 public static void pisi(String str) {
39 for (int i = 0; i < str.length(); i++) {
40 pisiZnak(str.charAt(i));
41 }
42 }
44 public static void main(String[] args) {
45 System.out.println("Unesite reci koje treba ispisati u fajl:");
46 String str = Svetovid.in.readLine("rec?");
47 while (!str.equals(".")) {
48 pisi(str);
49 str = Svetovid.in.readLine("rec?");
50 }
51 Svetovid.out(izlaznifajl).close();
52 }
54 }
Svarog.pmf.uns.ac.rs/gitweb maintanance Doni Pracner