我正在尝试制作一个将文件写入用户计算机的程序,但确实遇到了麻烦,我想编写一个名为 desktop.bat
的文件,我必须将其写入 c:/
目录,但它似乎不起作用。这是代码:
package javawriter;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class JavaWriterObject {
public void TryThis(){
try{
File file = new File("C:\\Desktop.bat");
if (file.exists()){
System.out.println("The file exists \ndirectory is found");
}else{
System.out.println("file is not found yet ".concat("file will be created"));
file.createNewFile();
}
FileWriter out = new FileWriter(file);
BufferedWriter writer = new BufferedWriter(out);
writer.write();
writer.close();
}catch(IOException e){
e.printStackTrace();
}
}
}
我是否必须为 writer.write(); 编写一个字符串,或者我可以做一些可以编写我想要的文件的事情吗?
最佳答案
Java 7 Files.copy
方法帮你copy a file from one location to another .
如果您使用的是旧版本的 Java,则需要自己读取原始文件并将其内容复制到新文件中,或者必须使用第三方库。查看this question的答案一些好的解决方案,包括使用 Apache Commons IO FileUtils
或仅使用标准 Java API。
一旦您决定如何复制文件,您可能会遇到另一个问题。默认情况下,Windows 7 将阻止您写入某些目录,例如 C:\
。您可以尝试写入不同的目录,例如临时目录或用户主目录中的任何位置。如果您必须写入 C:\,最简单的解决方案(除了在 Windows 中提前创建文件并在程序中覆盖它,这可能达不到目的)是禁用 UAC 并确保您的用户帐户具有写入权限该目录——但这当然会带来安全隐患。
关于java - 如何将已制作的批处理文件写入 Java 中的特定目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9625638/