sâmbătă, 1 septembrie 2012

Caracter_cu_Caracter


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