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

557

    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. Eutanasia - miksi eläimelle sallitaan armokuolema, mutta ihmiselle ei?

      Olen pitkään ihmetellyt yhtä asiaa Suomessa. Kun koira kärsii parantumattomasta sairaudesta ja kovista kivuista, eläinlä
      Arvot ja etiikka
      52
      11792
    2. Sanna Marin vetänyt leukoja 11 kertaa

      Tästähän oli joskus polemiikkia, kun muistaakseni lupasi kymmenen tai jotain vedellä. No nyt niin on, ainakin omien san
      Maailman menoa
      40
      4754
    3. Sosiaalidemokratia romahtanut kautta maailman

      nuoret eivät enää kannata järjetöntä aatetta, joten demarien täytyy hakea kannattajia mamuista. Ruotsin sos.demit jo kie
      Maailman menoa
      256
      2872
    4. Miksi Seta ja Sofia Virta ei vaadi muslimeita kunnioittamaan priden-arvoja?

      Kuten tiedetään niin islam ei hyväksy sitä mitä pride edustaa. Seta-pomo Mikkonen nosti hirveän äläkän kun yksi tepsin
      Maailman menoa
      152
      2672
    5. Kuvaile kaivattusi

      ulkonäkö. Asiattomatkin kommentit saa laittaa. -🏚️
      Ikävä
      115
      1782
    6. Farmi Suomi: Kokeeko Frederik, 81, saman kohtalon kuin ikämies Danny?

      Danny, musiikkineuvos Ilkka Lipsanen, nähtiin mukana Farmi Suomi -realityssä v. 2024. Danny teki yllätysratkaisun ja tuo
      Tv-sarjat
      19
      1178
    7. 40 vuotta töitä paiskinut ja 3 vuotta työttömänä mamuna Suomessa, sama eläke

      Jokin mättää. Eläkettä ei pidä maksaa lainkaan mamuille jos työhistoriaa ei ole vähintään 10 vuotta takana.
      Maailman menoa
      211
      941
    8. Kirjoita

      … jotakin minkä vain kaivattusi tietää
      Ikävä
      79
      889
    9. Et olisi niin epävarma,

      olisit varmempi, ihastuisin suhun enemmän...
      Ikävä
      82
      860
    10. En luota sinuun

      en edelleenkään yhtään tiedä oletko lintu vai kala vai kalavale. Ja ilmeisesti haluat pitää sen niin, syitä voi vain arv
      Ikävä
      67
      835
    Aihe