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

582

    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. VVM Riikka Purra ministerin asemassaan valehteli ja rikkoi perustuslakia.

      Valtiovarainministeri Riikka Purra (PS) kiisti Ylen ykkösaamussa luvanneensa ennen vaaleja, ettei pienituloisilta leikat
      Politiikka
      43
      9618
    2. Purra ennen vaaleja: "pienituloisten etuuksista leikkaaminen ei meille käy"

      "...perussuomalaisten ero muun muassa kokoomukseen, joka haluaa leikata pienituloisten etuuksista, se ei meille käy."
      Maailman menoa
      38
      3586
    3. Ammattiliittojen jäsenmaksut valtion maksettavaksi

      Ammattiliitot neuvottelvat jäsenilleen paremmat palkat, jotka lisäävät valtio verotuloja. Tästä syystä valton tulee maks
      Maailman menoa
      30
      3141
    4. Toksinen persuvasemmisto

      Kun toksiset ihmiset eivät kykene hallitsemaan sinua, saamaan sinua näkemään asiat niin kuin he haluaa, toimimaan niin k
      Maailman menoa
      20
      2800
    5. Rikkaiden ja yritysten veroaleen ei ole varaa

      Ei pieni Suomi pysty elättämään vanhenevaa väestöä nykyisellä veroasteella. Ainakin 5-prosenttiyksikköä pitää kokonaisve
      Maailman menoa
      19
      2365
    6. Riikka Purra: Autoilu tulee Suomen valtiolle pyöräilyä edullisemmaksi! Siksi pyöräetu poistettiin!

      🐸🐸🐸🐸🐸 Perussuomalaisten trollitehdas kiukkuaa kun Riikka Purra päästi taas sammakoita suustaan että autoilu tulee S
      Maailman menoa
      343
      1848
    7. Kerro tarinasi

      Miten kaikki alkoi.
      Ikävä
      96
      1247
    8. Tikkunenällä on kovat luulot itsestään

      Mut ei tarjottavana muuta kuin katkeruutta, ilkeyttä ja ilkeä luonne hyih.. oikea miesten nielijä Onneksi kaivatullani
      Ikävä
      13
      1193
    9. Miten määrittelisit suhteesi häneen?

      Mistä on kyse?
      Ikävä
      93
      1083
    10. Mitä muru toivot

      Oikein kovasti?
      Ikävä
      94
      1023
    Aihe