我正在尝试覆盖该文件:
File file = new File(importDir, dbFile.getName());
DataOutputStream output = new DataOutputStream(
new FileOutputStream(file, false));
output.close();
但它显然会用新的空文件覆盖旧文件,我的目标是使用file
我该如何正确地做到这一点?
答案 0 :(得分:1)
不幸的是,文件复制这样简单的操作在Java中并不明显。
在Java 7中,您可以使用NIO util class Files,如下所示:
Files.copy(from, to);
否则更难以代替大量代码,请仔细阅读Standard concise way to copy a file in Java?
答案 1 :(得分: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");
答案 2 :(得分:0)
您可以使用
FileOutputStream fos = new FileOutpurStream(file);
fos.write(string.getBytes());
构造函数,它将创建新文件,或者如果已经存在则覆盖它......
答案 3 :(得分:0)
出于我的目的,似乎最简单的方法是删除文件然后复制它
if (appFile.exists()) {
appFile.delete();
appFile.createNewFile();
this.copyFile(backupFile, appFile);