Kopiointi

eikkuli

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);
}

4

564

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • 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

    1. Päivän Sanna: Suomi maailman onnellisin maa

      Sanna muutti Suomen maailman onnellisimmaksi maaksi. Hänen pyyteetön työnsä maailmalla tuottaa edelleen tulosta.
      Maailman menoa
      156
      4022
    2. Taisi kolahtaa....

      Joku kysyi, että miksi S24 sallii kirjoittelun tänne venäläisiltä alustoilta, juttu poistui. Täällähän tosiaan välillä
      Maailman menoa
      39
      2627
    3. Moni islamilainen maa on jo kieltänyt burkat ja nigabit

      mm. Marokko, Tunisia ja Turkki. Miksi he ovat sen tehneet? No perusteet ovat selkeät ja yhteneväiset: turvallisuus, yhte
      Maailman menoa
      84
      2072
    4. Vain puolet SDP:n kannattajista luottaa puoluejohtoon häirintäkohussa

      Ja SDP on ilmoittanut, että ainoa rangaistus häirintään syyllistyneille kansanedustajille on puhuttelu - aina sama. Eli
      Maailman menoa
      77
      1884
    5. Suomi edelleen maailman onnellisin maa

      Olemme hyvällä tiellä. Laitetaan nyt talous kuntoon.
      Maailman menoa
      205
      1774
    6. Kyllä mies pakit kestää

      Herranen aina nyt poijat! 😃 Jos pelkäätte pakkeja noin paljon niin hamekangasta hakemaan. Oon ite saanut useammatkin n
      Ikävä
      25
      1071
    7. Mikä kaivatussasi

      on eniten yllättänyt?
      Ikävä
      72
      1065
    8. Miksi ajattelet

      että et riittäisi kaivatullesi?
      Ikävä
      62
      763
    9. Milloin olit onnellinen? Miksi?

      Mikä saa sinut onnelliseksi? Suomi on 9. kertaa maailman onnellisin maa. Kuulutko sinä onnellisten suomalaisten joukkoon
      Sinkut
      141
      761
    10. Anniina Valtonen odottaa - Sai 2-vuotiaalta lapseltaan napakan heiton!

      Suosikkimeteorologi Anniina Valtonen elää uutta vaihetta elämässään. Hän on kertonut odottavansa toista lasta. Valtonen
      Suomalaiset julkkikset
      27
      759
    Aihe