Я попробовал следующее: Но это не даже распечатать один номер:/ файл 700mb большой занимает около ~ 15sКак отслеживать writeObject() Прогресс
2-й класс должен зацепить в выходной поток, если я понял это правильно и не нашел решение в другом месте
Проблема: я не могу отслеживать процесс «writeObject()» - я пытаюсь сделать панель прогресса, чтобы показать, как большая часть файла уже загружена
public class Main {
public static void main(String[] args) throws Exception {
String file_name = "M:\\Config\\huge.avi";
File file = new File(file_name);
System.out.println(file.getPath());
if(file.exists()){
Socket socket = new Socket("localhost", 4112);
ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());
ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream());
FileInputStream fis = new FileInputStream(file);
MyCountingStream mcs = new MyCountingStream(oos);
oos.writeObject(file.getName());
byte [] buffer = new byte[(int)file.length()];
Integer bytesRead = 0;
Timeline aftertickz = new Timeline(new KeyFrame(Duration.millis(10), new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent arg0) {
System.out.println(mcs.bytesWrittenSoFar());
}
}));
aftertickz.setCycleCount(Timeline.INDEFINITE);
aftertickz.play();
while ((bytesRead = fis.read(buffer)) > 0) {
oos.writeObject(bytesRead);
oos.flush();
oos.writeObject(Arrays.copyOf(buffer, buffer.length));
}
oos.close();
ois.close();
mcs.close();
fis.close();
socket.close();
System.exit(0);
}else{
System.out.println("File doesn't exist");
System.exit(0);
}
}
}
public class MyCountingStream extends DataOutputStream {
public MyCountingStream(OutputStream out) {
super(out);
}
public int bytesWrittenSoFar() {
return written;
}
}
Пожалуйста, сформулируйте Ваши проблемы – afzalex
*, возможно, забыли, что СРЮ * Это на вершине Теперь – Totenfluch