Я пытаюсь прочитать 5000 целых чисел из файла и записать эти целые числа в другой файл, используя два потока.Вот мой код:
public class data {
int value;
}
import java.util.*;
import java.io.*;
public class oku implements Runnable {
data d;
public oku(data d){
this.d=d;
}
public synchronized void run(){
File f= new File("/home/ayyuce/Desktop/ali.dat");
try{
Scanner sc= new Scanner(f);
while(sc.hasNextInt()){
//synchronized(d){
d.value=sc.nextInt();
}
//}
sc.close();
}
catch(Exception ex){}
}
}
import java.util.*;
import java.io.*;
public class yaz implements Runnable {
data d;
public yaz(data d){
this.d=d;
}
public synchronized void run(){
File f= new File("/home/ayyuce/Desktop/veri.dat");
try{
PrintWriter p = new PrintWriter(f);
for(int i=0; i<5000;i++){
//synchronized(d){
p.println(d.value);
//System.out.println(d.value);
}
//}
p.close();
}
catch(Exception ex){}
}
}
public class main_class {
public static void main(String[] args){
data d= new data();
//d.value=100;
oku o= new oku(d);
yaz y= new yaz(d);
Thread t1= new Thread(o);
Thread t2= new Thread(y);
t1.start();
t2.start();
}
}
Я использовал алгоритм потребителя производителя.Он читает из файла и записывает целое число в значение в классе данных, читает из класса данных и записывает в файл.Но это не работает правильно.Он записывает нули в файл.В чем проблема с моим кодом?
Спасибо