Czesc,
mam zadanie do programu ktory kopiuje pliki dopisac modul zeby pokazywal ile procent albo minut zostalo do skopiowania pliku.
Moze ktos wie jakim sposobem to znalezc (przyklady kodu), a konkretnie co napisac w google by on mnie zrozumial
[Java] Czas pozostały do końca kopiowania, fragment kodu
-
- Użytkownik
- Posty: 218
- Rejestracja: 24 lis 2009, o 10:55
- Płeć: Mężczyzna
- Lokalizacja: Wilno
- Podziękował: 27 razy
[Java] Czas pozostały do końca kopiowania, fragment kodu
Ostatnio zmieniony 21 cze 2011, o 11:12 przez Afish, łącznie zmieniany 2 razy.
Powód: Poprawa wiadomości. Staraj się lepiej dobierać nazwy tematów, tak by wskazywały o czym jest treść zadania.
Powód: Poprawa wiadomości. Staraj się lepiej dobierać nazwy tematów, tak by wskazywały o czym jest treść zadania.
-
- Użytkownik
- Posty: 32
- Rejestracja: 26 lis 2009, o 01:15
- Płeć: Mężczyzna
- Lokalizacja: Polska
- Pomógł: 9 razy
[Java] Czas pozostały do końca kopiowania, fragment kodu
Niestety podałeś mało informacji jak wygląda Twój kod/zadanie.
Najprościej mogłoby to wyglądać tak:
Myślę, że jak już to masz, to dalsze przekształcenie, żeby otrzymać pozostały czas/procent jest już łatwe - o ile o coś takiego wogóle Tobie chodzi...
Mam nadzieję, że pomogłem.
pozdrawiam
Najprościej mogłoby to wyglądać tak:
Kod: Zaznacz cały
public void copy(File source, File target)
throws FileNotFoundException, (IOException {
InputStream in = new FileInputStream(source);
OutputStream out = new FileOutputStream(target);
// get size of input file in bytes
long inputSize = source.length();
// variable for bytes that were transfered
long transfered = 0;
byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0){
System.out.println("Copied: " + ((transfered)/ ((double) inputSize) * 100) + "%%");
transfered += len;
out.write(buf, 0, len);
}
in.close();
out.close();
}
Mam nadzieję, że pomogłem.
pozdrawiam
-
- Użytkownik
- Posty: 218
- Rejestracja: 24 lis 2009, o 10:55
- Płeć: Mężczyzna
- Lokalizacja: Wilno
- Podziękował: 27 razy
[Java] Czas pozostały do końca kopiowania, fragment kodu
Dzieki za pomoc,
tak mam podobny kawalek,
tylko chce uzyc nie System.out, a JProgressBar dla pokazywania ile procent zrobione
tu wynika problem poniewarz poki process jest wykonywany to pokazuje 0 potem odrazu 100
nie wiem w czym problem.
tak mam podobny kawalek,
tylko chce uzyc nie System.out, a JProgressBar dla pokazywania ile procent zrobione
tu wynika problem poniewarz poki process jest wykonywany to pokazuje 0 potem odrazu 100
nie wiem w czym problem.
Kod: Zaznacz cały
while ((len = in.read(dataBytes)) > 0)
{ current += len;
zos.write(dataBytes, 0, dataBytes.length);
final double progres=(((double)current/(double)length)*100);
try{
SwingUtilities.invokeLater(new Runnable(){
public void run(){
progressBar.setValue((int)progres);
}
});
java.lang.Thread.sleep(100);
}catch(InterruptedException e){;}
-
- Użytkownik
- Posty: 32
- Rejestracja: 26 lis 2009, o 01:15
- Płeć: Mężczyzna
- Lokalizacja: Polska
- Pomógł: 9 razy
[Java] Czas pozostały do końca kopiowania, fragment kodu
Tutaj kod, jak coś takiego może wyglądać. JProgressBar przekazujesz w tej przykładowej metodzie jako parametr.
Pytałeś też o linki. Tutaj znajdziesz dużo dobrych pomysłów i dalszych odnośników:
pozdrawiam
Kod: Zaznacz cały
public void copy(File source, File target, JProgressBar progress)
throws FileNotFoundException, IOException, InterruptedException {
InputStream in = new FileInputStream(source);
OutputStream out = new FileOutputStream(target);
// get size of input file in bytes
long inputSize = source.length();
// init progress bar
progress.setMaximum((int) inputSize);
progress.setValue(0);
long transfered = 0;
byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0) {
transfered += len;
progress.setValue((int) transfered);
out.write(buf, 0, len);
}
in.close();
out.close();
}
pozdrawiam