3

1つのmp3ファイルを取得し、文字列変数を使用して名前を変更しようとしています。たとえば、クラシック音楽フォルダC:/ classicがあり、vivaldiという曲の名前をFourSeasonsに変更したいとします。初期ファイルC:/classical/vivaldi.mp3の絶対パスを見つけて、文字列 "FourSeasons.mp3"を指定し、ファイルC:/classical/vivaldi.mp3をC:/classicalに変更したいと思います。 /FourSeasons.mp3。

renameToとfilewriterを使用することを考えましたが、どちらも望ましい結果が得られませんでした。RenameToコード:これはfalseを返し(名前の変更に失敗しました)、ファイルを完全に削除する傾向があります。

public static void main(String[] args) {
File mp3 = new File("C:/mp3.mp3");
boolean renamestatus = mp3.renameTo(new File("song.mp3"));
System.out.println(renamestatus);
}

また、FileReaderとFileWriterを使用して、新しい名前でファイルの正確なコピーを作成しようとしました。このメソッドは、スキップして入力ファイルのように聞こえないmp3ファイルを出力します。これは私のfileWriterコードです。

File inputFile = new File("C:/mp3.mp3");
File outputFile = new File("C:/song.mp3");
FileReader in = new FileReader(inputFile);
FileWriter out = new FileWriter(outputFile);
int c;
while ((c = in.read()) != -1)
  out.write(c);
in.close();
out.close();
4

5 に答える 5

2

renameTo を使用する場合、ファイルの移動先のパスを指定する必要があります。たとえば、使用している元のパスが「C:/mp3.mp3」の場合、renameTo のパスを「C」のようにする必要があります。 :/song.mp3". したがって、あなたの行は次のようになります。

boolean renamestatus = mp3.renameTo(new File("C:/song.mp3"));

お役に立てば幸いです。

于 2011-06-01T08:17:36.277 に答える
1

このようにしてみてください:

mp3.renameTo(new File("C:/song.mp3"));

thisthisの回答もご覧ください。

于 2011-06-01T07:57:04.193 に答える
1

FileReaderまた、テキストデータのみFileWriterを処理するように作成されています。

MP3 ファイルはバイナリ データであり、そのように扱う必要があるため、読み取り/書き込みにはFileInputStreamandを使用する必要があります。FileOutputStream

于 2011-06-01T07:59:01.970 に答える
0

オリジナルを削除していません. 正常に動作しています. 完全なパスを指定してください(ソースファイルのパス + 新しい名前)

于 2016-02-09T04:16:37.773 に答える