Minull on seuraavan lainen tiedostojen kopiointi. Se ei vaan kopioi kuvia oikein. Miten sitä pitäisi muuttaa?
private void copyFile() {
if(input == null || output == null)
return;
try {
String name = input.getName();
File file = new File(output, name);
System.out.println("file = " file.getPath());
if(!file.exists())
file.createNewFile();
BufferedReader br = new BufferedReader(
new InputStreamReader(
new FileInputStream(input)));
BufferedWriter bw = new BufferedWriter(
new OutputStreamWriter(
new FileOutputStream(file)));
String line;
while((line = br.readLine()) != null) {
bw.write(line, 0, line.length());
bw.newLine();
}
br.close();
bw.close();
} catch (IOException e) {
System.err.println("Exception occured:");
System.out.println(e.getMessage());
}
System.out.println("Copying done");
System.exit(0);
}
Kopiointi
4
457
Vastaukset
- ddddssasd
Sinun pitää käsitellä tiedostoja binäärimuodossa jos haluat että muutkin kuin tekstitiedostot toimivat.
En ole java guru mutta uskoakseni "binäärivirta" tai "tavuvirta" taitaa olla suomenkielinen termi, jolla löydät tähän liittyvää asiaa suomeksi.- Javakko
Jep. BufferedReader ja BufferedWriter on tarkoitettu tekstiä varten. Kuvatiedostot menee tuossa operaatiossa varmasti rikki.
Periaatteessa voit käyttää suoraan tuota FileInputStream luokan read() metodia tavujen lukemiseen ja FileOutputStream luokan write() metodia sen luetun tavun kirjoittamiseen. Ja saman teet tiedoston kaikille tavuille (file.length() kertoo alkuperäisen tiedoston pituuden).
Tehoton tapa, mutta pitäisi toimia. - srthstr
Javakko kirjoitti:
Jep. BufferedReader ja BufferedWriter on tarkoitettu tekstiä varten. Kuvatiedostot menee tuossa operaatiossa varmasti rikki.
Periaatteessa voit käyttää suoraan tuota FileInputStream luokan read() metodia tavujen lukemiseen ja FileOutputStream luokan write() metodia sen luetun tavun kirjoittamiseen. Ja saman teet tiedoston kaikille tavuille (file.length() kertoo alkuperäisen tiedoston pituuden).
Tehoton tapa, mutta pitäisi toimia.Ei BufferedReader ole rajoitettu mitenkään virran sisällön suhteen. Ainoa vika tuossa koodissa oli se, että siinä käytettiin readLine-metodia, kun olisi pitänyt käyttää read-metodia. readLine lukee nimensä mukaisesti rivin, eikä kuvissa ole rivejä.
- Javakko
srthstr kirjoitti:
Ei BufferedReader ole rajoitettu mitenkään virran sisällön suhteen. Ainoa vika tuossa koodissa oli se, että siinä käytettiin readLine-metodia, kun olisi pitänyt käyttää read-metodia. readLine lukee nimensä mukaisesti rivin, eikä kuvissa ole rivejä.
BufferedReaderin Javadoc-kuvaus alkaa "Reads text from a character-input stream" ja read() metodi sanoo "Reads a single character". Tuo kyllä kuulostaa kovin tekstilähtöiseltä, en suosittelisi tuota käyttämään minkä tahansa tavuvirran lukemiseen.
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Kuka maksaa Elokapinan töhrinnän?
Vieläkö tukevat Elokapinan toimintaa mm. Aki Kaurismäki, Sofi Oksanen, Paleface, Koneen Säätiö ym. ? Kenen kukkarosta ot5853879Muuttaisiko viesti mitään
Haluaisin laittaa viestin, mutta muuttaisiko se mitään. Oletko yhä yhtä ehdoton vai valmis kyseenalaistamaan asenteesi j483318- 382801
Valpuri Nykänen elokapina
Aikas kiihkomielinen nainen kun mtv:n uutiset haastatteli. Tuollaisiako ne kaikki on.662759Oon vähän ihastunut suhun nainen
Vaikka toisin jokin aika sitten väitin mutta saat mut haluamaan olemaan parempi ihminen :)192144- 322091
Se että tavattiin
Hyvin arkisissa olosuhteissa oli hyvä asia. Olimme molemmat lähestulkoon aina sitä mitä oikeasti olemme. Tietysti pieni121967- 291865
Oot pala mun sielua
Jos toivot, että lähden mä lähden. Jos toivot, että jään mä jään. Koen, että olet mun sielunkumppani, mutta lämmöllä my171810Hei T........
Ajattelin kertoa että edelleen välillä käyt mielessä.... En ole unohtanut sinua, enkä varmasti ikinä... Vaikka on kulunu471759