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

611

    Vastaukset 4

    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. Poliisi yritti murhata mopopojan

      Nyt menee kissalan poikien touhu liian pitkälle! https://www.is.fi/kotimaa/art-2000012193221.html Karu video mopomiiti
      Maailman menoa
      705
      3060
    2. Käviskö tällainen suhde

      Tutustutaan, fyysistä kontaktia, mutta ensijaisesti tarkoituksena ei ole aloittaa mitään virallista tai rikkoa mitään? E
      Ikävä
      71
      963
    3. Raiskausyritys

      Eilen laajallakankaalla lenkkipolulla.
      Kajaani
      42
      837
    4. Mihin kiinnitit ensimmäisenä

      huomiota kaivatussasi?
      Ikävä
      69
      776
    5. Niin kauan tätä

      Onko vuotesi menneet hukkaan
      Ikävä
      88
      637
    6. Olen pahoillani

      Olen mokannut pahasti ja pilannut sinun ja monen muun ihmisen maineen. Anteeksi. Muutan toiselle paikkakunnalle. Hyvästi
      Ikävä
      43
      569
    7. Poutalan onnettomuus

      https://www.mtvuutiset.fi/artikkeli/ministeri-mika-poutala-vakavassa-onnettomuudessa/9375980 Kumma kun jutussa ei manit
      Maailman menoa
      50
      541
    8. Harvinaisin persoonallisuustyyppi

      Vihdoin löytyi selitys sille mitä olen. En olisi uskonut että löytyisi. Signs You Are the Rarest Personality Type o
      Sinkut
      80
      475
    9. Missä on Sofia Virta? Loistaa poissaolollaan Erikoisjoukot uudelta kaudelta

      Vihreiden puheenjohtaja, kansanedustaja Sofia Virta pääsi otsikoihin, kun tieto hänen osallistumisestaan Erikoisjoukot-k
      Kotimaiset julkkisjuorut
      25
      470
    10. Taisin vihdoin saada sinut ulos luuristani stalkkeri

      Et selvästikään ole niin pätevä kuin luulet. Tai minä niin huono.
      Ikävä
      82
      461
    Aihe