package pack;
import java.io.*;
import java.util.*;
import java.util.concurrent.CountDownLatch;
public class CaracterCuCaracter extends Thread implements Serializable {
public BufferedReader br;
public PrintWriter pw;
public Stack <String> st;
public static ObjectOutputStream s;
public CaracterCuCaracter(BufferedReader br,PrintWriter pw,Stack <String> st)
{
this.br=br;
this.pw=pw;
this.st=st;
}
public void run() {
int c;
try {
while ((c = br.read()) != -1) {
char ch =(char) c;
String string=Character.toString(ch);
synchronized (pw) {
pw.println(string);
st.push(string);
}
}
pw.println("**************************");
br.close();
} catch (IOException e) {
System.out
.println("o alta exceptie la citire" + e.getMessage());
}
}
public static void main(String[] args) throws ClassNotFoundException, InterruptedException {
try
{
Stack <String> stack=new Stack<String>();
BufferedReader fis1=new BufferedReader(new FileReader("fisier1.txt"));
BufferedReader fis2=new BufferedReader(new FileReader("fisier2.txt"));
BufferedReader fis3=new BufferedReader(new FileReader("fisier3.txt"));
PrintWriter print=new PrintWriter(new File("destinatie.txt"));
CaracterCuCaracter th1 = new CaracterCuCaracter(fis1,print,stack);
CaracterCuCaracter th2 = new CaracterCuCaracter(fis2,print,stack);
CaracterCuCaracter th3 = new CaracterCuCaracter(fis3,print,stack);
th1.start();
th2.start();
th3.start();
try{
FileInputStream f=new FileInputStream("arhiva");
FileOutputStream out = new FileOutputStream("arhiva");
ObjectOutputStream s = new ObjectOutputStream(out);
WriteToArchiveThread th=new WriteToArchiveThread(stack, s);
th.start();
th1.join();
th2.join();
th3.join();
th.join();
System.out.println("asteapta===============================");
ObjectInputStream obj = new ObjectInputStream(f);
System.out.println("The text : "+ obj.readObject());
print.println(obj.readObject());
obj.close();
System.out.println("Deserializing Operation Completly Successfully.");
print.close();
}catch(IOException e)
{
System.out.println("big error"+e.getMessage());
}
}catch(FileNotFoundException e)
{
System.out.println("fisier inexistent"+e.getMessage());
}
}
}
package pack;
import java.io.*;
import java.util.*;
public class WriteToArchiveThread extends Thread implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
Stack<String> st;
ObjectOutputStream s;
public WriteToArchiveThread(Stack<String> st,ObjectOutputStream s) {
this.st = st;
this.s=s;
}
public void run() {
try {
if(st.empty()==true)
{
System.out.println("Stiva goala");
}
while (st.empty() != true) {
try {
s.writeObject(st.pop());
System.out.println("se asteapta 3 sec");
Thread.sleep(3000);
}
catch (InterruptedException e) {
System.out.println(e.getMessage());
}
}
s.close();
} catch (IOException e) {
System.out.println("Eroare" + e.getMessage());
}
}
}
package pack;
public class Test {
}
Niciun comentariu:
Trimiteți un comentariu