Java 复制Mp3文件
我正在尝试创建一个应用程序,它允许我使用文件选择器和工厂模式将mp3和mp4文件从一个目录复制到另一个目录。文件似乎已复制到该位置,但无法播放。新文件是8k,而原来的mp3是8mb,所以我猜它从来没有复制过内容,只是创建了文件 这是我的Java 复制Mp3文件,java,Java,我正在尝试创建一个应用程序,它允许我使用文件选择器和工厂模式将mp3和mp4文件从一个目录复制到另一个目录。文件似乎已复制到该位置,但无法播放。新文件是8k,而原来的mp3是8mb,所以我猜它从来没有复制过内容,只是创建了文件 这是我的Mp3Factory课程: package application; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; impor
Mp3Factory
课程:
package application;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.logging.Logger;
import javax.swing.JFileChooser;
import javax.swing.filechooser.FileNameExtensionFilter;
import javafx.scene.media.Media;
public class Mp3Factory extends MediaFactory{
private File folder = null;
private File file= null;
private Media m = null;
FileOutputStream output = null;
@Override
public File openFile() {
//Add image filter to file chooser
fc.addChoosableFileFilter(new FileNameExtensionFilter("Mp3 Files", "mp3"));
fc.setAcceptAllFileFilterUsed(false);
//Show the file chooser dialog
int returnVal = fc.showOpenDialog(null);
//If the user chose a file then return it
if (returnVal == JFileChooser.APPROVE_OPTION) {
return fc.getSelectedFile();
} else {
System.out.println("Open command cancelled by user.");
return null;
}
}
@Override
public void saveFile(File file) {
String fileName = file.getName();
folder = new File("H:\\TestFolder\\"); //output file path
if (!folder.exists()) {
try {
folder.createNewFile();
} catch (IOException ex) {
ex.printStackTrace();
}
}
try{
String folder_location = folder.toString() + "\\";
file = new File(folder_location + fileName.toString());
output = new FileOutputStream(file);
if (!file.exists()) {
file.createNewFile();
}
byte[] buffer = new byte[4096];
output.write(buffer);
output.flush();
output.close();
}catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void defaultSavePath() {
// TODO Auto-generated method stub
}
@Override
public void loaddefaultSavePath() {
// TODO Auto-generated method stub
}
}
Java已经有了很好的复制功能:
public void saveFile(File file) throw IOException {
Path sourcePath = file.toPath();
String fileName = file.getName();
String targetPath = Paths.get("H:\\TestFolder", fileName);
Files.copy(sourcePath, targetPath, StandardCopyOption.REPLACE_EXISTING);
}
Java已经有了很好的复制功能:
public void saveFile(File file) throw IOException {
Path sourcePath = file.toPath();
String fileName = file.getName();
String targetPath = Paths.get("H:\\TestFolder", fileName);
Files.copy(sourcePath, targetPath, StandardCopyOption.REPLACE_EXISTING);
}
如果(!folder.exists())。。。folder.createNewFile()代码>-不应该改为folder.mkDirs()
?向我们展示复制文件的方法。另外,saveFile
创建了一个4096字节的空缓冲区并将其写入文件。嘿,你刚刚更改了它,谢谢你发现了这一点。如果(!folder.exists())…仍然无法获得正确的副本。。。folder.createNewFile()代码>-不应该改为folder.mkDirs()
?向我们展示复制文件的方法。另外,saveFile
创建了一个4096字节的空缓冲区并将其写入文件。嘿,你刚刚更改了它,谢谢你发现了这一点。仍然无法得到正确的答案:尽可能少地发布代码,多写解释。纯代码转储甚至可能无法帮助OP理解问题,更不用说未来的读者了。更好答案的提示:尽可能少地发布代码,并编写更多解释。纯代码转储甚至可能无法帮助OP理解问题,更不用说未来的读者了。