Usuwanie zawartości pliku podczas zapisywania działań

0

Witam. Kod poniższy zmienia kodowanie pliku tekstowego i zapisuje go w innym pliku.

import java.io.*;

public class Convert {
 private String text;
 
  public static void main(String[] args) {

    if (args.length != 4) {
      System.out.println("Syntax: in in_enc out out_enc");
      System.exit(1);
    }

    String infile  = args[0],     // plik wejściowy
           in_enc  = args[1],     // wejściowa strona kodowa
           outfile = args[2],     // plik wyjściowy
           out_enc = args[3];     // wyjściowa strona kodowa

    try {
       FileInputStream fis = new FileInputStream(infile);
       BufferedReader in = new BufferedReader(new InputStreamReader(fis, in_enc));
       FileOutputStream fos = new FileOutputStream(outfile);
       BufferedWriter out = new BufferedWriter(new OutputStreamWriter(fos, out_enc));
       String line;
       while ((line = in.readLine()) != null) {
         out.write(line);
         out.newLine();
       }
       in.close();
       out.close();
    } catch (IOException e) {
        System.err.println(e);
        System.exit(1);
    }

  }
}

Jednak jeśli zastąpię plik wyjściowy argumentem pliku wejściowego (żeby zapisał mi działania w tym samym pliku), zawartość pliku usuwa się kompletnie. Czy jest w ogóle opcja żeby zapisać działanie tego programu w tym samym pliku nie tracąc jego zawartości?

0

Może zrób kopie pliku jako plik tymczasowy(temp), zrzuć z kopii przekodowaną treść do źródła i na koniec skasuj plik tymczasowy :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1