ファイルの名前を次のように変更できますtest.txt
かtest1.txt
?
test1.txt
存在する場合、名前を変更しますか?
後で使用するためにtest.txtの新しい内容が追加されるように、既存のtest1.txtファイルに名前を変更するにはどうすればよいですか?
ファイルの名前を次のように変更できますtest.txt
かtest1.txt
?
test1.txt
存在する場合、名前を変更しますか?
後で使用するためにtest.txtの新しい内容が追加されるように、既存のtest1.txtファイルに名前を変更するにはどうすればよいですか?
http://exampledepot.8waytrips.com/egs/java.io/RenameFile.htmlからコピー
// File (or directory) with old name
File file = new File("oldname");
// File (or directory) with new name
File file2 = new File("newname");
if (file2.exists())
throw new java.io.IOException("file exists");
// Rename file (or directory)
boolean success = file.renameTo(file2);
if (!success) {
// File was not successfully renamed
}
新しいファイルに追加するには:
java.io.FileWriter out= new java.io.FileWriter(file2, true /*append=yes*/);
要するに:
Files.move(source, source.resolveSibling("newname"));
もっと詳しく:
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;
以下はhttp://docs.oracle.com/javase/7/docs/api/index.htmlから直接コピーしたものです。
ファイルの名前を「newname」に変更し、ファイルを同じディレクトリに保持するとします。
Path source = Paths.get("path/here");
Files.move(source, source.resolveSibling("newname"));
または、ファイルを新しいディレクトリに移動し、同じファイル名を保持して、ディレクトリ内のその名前の既存のファイルを置き換えたいとします。
Path source = Paths.get("from/path");
Path newdir = Paths.get("to/path");
Files.move(source, newdir.resolve(source.getFileName()), StandardCopyOption.REPLACE_EXISTING);
FileオブジェクトでrenameToメソッドを利用したいとします。
まず、宛先を表すFileオブジェクトを作成します。そのファイルが存在するかどうかを確認してください。存在しない場合は、移動するファイルの新しいFileオブジェクトを作成します。移動するファイルのrenameToメソッドを呼び出し、renameToからの戻り値をチェックして、呼び出しが成功したかどうかを確認します。
あるファイルの内容を別のファイルに追加したい場合は、多数のライターを利用できます。拡張機能に基づくと、プレーンテキストのように聞こえるので、FileWriterを調べます。
Java 1.6 以前の場合、最も安全でクリーンな API は Guava のFiles.move だと思います。
例:
File newFile = new File(oldFile.getParent(), "new-file-name.txt");
Files.move(oldFile.toPath(), newFile.toPath());
最初の行は、新しいファイルの場所が同じディレクトリ、つまり 古いファイルの親ディレクトリであることを確認します。
編集: Java 7 を使い始める前にこれを書きましたが、これは非常によく似たアプローチを導入しました。したがって、Java 7 以降を使用している場合は、kr37 の回答を確認して賛成する必要があります。
ファイルを新しい名前に移動して名前を変更します。(FileUtils は Apache Commons IO lib からのものです)
String newFilePath = oldFile.getAbsolutePath().replace(oldFile.getName(), "") + newName;
File newFile = new File(newFilePath);
try {
FileUtils.moveFile(oldFile, newFile);
} catch (IOException e) {
e.printStackTrace();
}
ファイルの名前を変更するだけの場合は、File.renameTo()を使用できます。
2番目のファイルの内容を最初のファイルに追加する場合は、コンストラクターの追加オプションを指定したFileOutputStreamを確認するか、FileWriterについても同じことを確認してください。ファイルの内容を読み取って追加し、出力ストリーム/ライターを使用して書き出す必要があります。
私の知る限り、ファイルの名前を変更しても、その内容がターゲット名を持つ既存のファイルの内容に追加されることはありません。
Javaでのファイルの名前変更については、クラスのメソッドのドキュメントを参照してください。renameTo()
File