package zap; import java.io.*; import java.util.LinkedList; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; public class Vstup extends Thread{ public BufferedReader ds; public PipedOutputStream o; public Vstup(String suborIn) throws FileNotFoundException { ds = new BufferedReader(new FileReader(suborIn)); o = new PipedOutputStream(); } @Override public void run(){ int znak; try { while ((znak = ds.read()) != -1) { o.write(znak); } o.close(); ds.close(); } catch (IOException ex) { Logger.getLogger(Vstup.class.getName()).log(Level.SEVERE, null, ex); } } } public class Vystup extends Thread { public BufferedWriter ds; public PipedInputStream i; //public PipedInputStream o; public Vystup(String suborIn) throws FileNotFoundException, IOException { ds = new BufferedWriter(new FileWriter(suborIn)); i = new PipedInputStream(); } @Override public void run(){ int znak; try { while ((znak = i.read()) != -1) { ds.write(znak); System.out.println((char)znak); } i.close(); } catch (Exception ex) { Logger.getLogger(Vstup.class.getName()).log(Level.SEVERE, null, ex); } finally { try { ds.close(); } catch (IOException ex) { Logger.getLogger(Vystup.class.getName()).log(Level.SEVERE, null, ex); } } } } public class Hrana { public char stav1; public char stav2; public int druh; public char p; public Hrana(char s1, char s2, char d, char pIn) { stav1=s1; stav2=s2; if (d=='?') druh=1; if (d=='!') druh=2; p=pIn; } public void Vypis() { System.out.print(stav1 + "-" + stav2 + druh + p); } } public class LTS extends Thread { public char stav = '0'; public PipedInputStream i; public PipedOutputStream o; public List h = new LinkedList(); public LTS() { i = new PipedInputStream(); o = new PipedOutputStream(); } @Override public void run(){ int znak; try { znak = i.read(); if (znak != -1) { while(true) { boolean pouzite = false; for(int j=0; j list; public static void nacitajLTS(String suborIn) throws FileNotFoundException, IOException { BufferedReader ds = new BufferedReader(new FileReader(suborIn)); String line; list = new LinkedList(); boolean novy = true; while ((line = ds.readLine()) != null) { if (novy) { list.add(new LTS()); } if (line.length() < 1) { novy = true; } else { list.get(list.size()-1).h.add(new Hrana(line.charAt(0), line.charAt(2), line.charAt(4),line.charAt(5))); novy=false; } } } public static void main(String[] args) throws FileNotFoundException, IOException { if (args.length == 3) { nacitajLTS(args[0]); Vstup vstup = new Vstup(args[1]); Vystup vystup = new Vystup(args[2]); vstup.o.connect(list.get(0).i); // for (int k=list.size()-2; k==0; k--){ // list.get(k).o.connect(list.get(k+1).i); // } list.get(4).o.connect(vystup.i); list.get(3).o.connect(list.get(4).i); list.get(2).o.connect(list.get(3).i); list.get(1).o.connect(list.get(2).i); list.get(0).o.connect(list.get(1).i); //list.get(1).i.connect(vstup.o); //list.get(list.size()-1).o.connect(vystup.i); vystup.start(); // for (int k=list.size()-5; k==0; k--){ // list.get(k).start(); // } list.get(4).start(); list.get(3).start(); list.get(2).start(); list.get(1).start(); list.get(0).start(); vstup.start(); } // TODO code application logic here } }