0

私はこれをファイルを上書きしようとしています:

File file = new File(importDir, dbFile.getName());
DataOutputStream output = new DataOutputStream(
new FileOutputStream(file, false));                 
output.close();

しかし、それは明らかに古いファイルを新しい空のファイルで上書きします。私の目標は、によって提供されるコンテンツでファイルを上書きすることです。file

どうすればそれを正しく行うことができますか?

4

4 に答える 4

1

残念ながら、ファイルのコピーなどの単純な操作は、Java では明らかではありません。

Java 7 では、NIO util クラスファイルを次のように使用できます。

Files.copy(from, to);

それ以外の場合は難しく、大量のコードの代わりに、Java でファイルをコピーする標準的な簡潔な方法を注意深く読んだ方がよいでしょうか?

于 2012-05-14T17:56:51.827 に答える
0
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    String str;
    System.out.print("Enter a file name to copy : ");
    str = br.readLine();

    int i;
    FileInputStream f1;
    FileOutputStream f2;

  try
  {
    f1 = new FileInputStream(str);
    System.out.println("Input file opened.");
  }
  catch(FileNotFoundException e)
  {
    System.out.println("File not found.");
    return;
  }

  try
  {
    f2 = new FileOutputStream("out.txt");    //    <---   out.txt  is  newly created file
    System.out.println("Output file created.");
  }
  catch(FileNotFoundException e)
  {
    System.out.println("File not found.");
    return;
  }

  do
  {
    i = f1.read();
    if(i != -1) f2.write(i);
  }while(i != -1);
  f1.close();
  f2.close();
  System.out.println("File successfully copied");
于 2012-05-14T17:45:52.960 に答える
0

使用できます

FileOutputStream fos = new FileOutpurStream(ファイル);

fos.write(string.getBytes());

新しいファイルを作成するコンストラクター、または既に存在する場合は上書きします...

于 2012-05-14T17:50:14.393 に答える
0

私の目的では、ファイルを削除してからコピーするのが最も簡単な方法のようです

            if (appFile.exists()) {
                appFile.delete();
                appFile.createNewFile();
                this.copyFile(backupFile, appFile);
于 2012-05-14T20:20:33.230 に答える