如何将已经生成的批处理文件写入Java中的特定目录?
我正在尝试制作一个程序,将一个文件写入用户的计算机,但我确实遇到了问题,我想编写一个名为如何将已经生成的批处理文件写入Java中的特定目录?,java,file-handling,buffer,Java,File Handling,Buffer,我正在尝试制作一个程序,将一个文件写入用户的计算机,但我确实遇到了问题,我想编写一个名为desktop.bat的文件,我必须将它写入c://目录,但它似乎不起作用。代码如下: package javawriter; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; public class JavaWriterObject {
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()编写字符串吗
或者我可以在可以编写所需文件的地方做些什么吗?您必须从某个地方获取要编写的内容,或者是应用程序中的字符串文字,或者,首选方法是通过..从资源(与应用程序捆绑在一起)获取
将输入流复制到文件是一件很费事的事,但是,如果您使用的是Guava,您也可以。您必须从某个地方获取要写入的内容,或者是应用程序中的字符串文字,或者,首选方法是从资源(与应用程序捆绑在一起)通过 将输入流复制到文件是一件很费事的事情,但是,如果您使用的是Guava,您也可以这样做。Java7的方法对您有所帮助 如果您使用的是旧版本的Java,您需要自己读取原始文件并将其内容复制到新文件中,或者必须使用第三方库。有关几个好的解决方案,请参见的答案,包括使用Apache Commons IO
FileUtils
或仅使用标准Java API
一旦决定了要如何复制文件,您可能会遇到另一个问题。默认情况下,Windows 7将阻止您写入某些目录,例如C:\
。您可以尝试写入其他目录,例如临时目录或用户主目录中的任何位置。如果您必须写入C:\,最简单的解决方案(除了在Windows中提前创建文件并在程序中覆盖它之外,这可能会破坏目的)是禁用UAC并确保您的用户帐户对该目录具有写入权限——当然,这,具有安全含义。Java7的方法可以帮助您
如果您使用的是旧版本的Java,您需要自己读取原始文件并将其内容复制到新文件中,或者必须使用第三方库。有关几个好的解决方案,请参见的答案,包括使用Apache Commons IOFileUtils
或仅使用标准Java API
一旦决定了要如何复制文件,您可能会遇到另一个问题。默认情况下,Windows 7将阻止您写入某些目录,例如C:\
。您可以尝试写入其他目录,例如临时目录或用户主目录中的任何位置。如果您必须写入C:\,最简单的解决方案(除了在Windows中提前创建文件并在程序中覆盖它之外,这可能会破坏目的)是禁用UAC并确保您的用户帐户对该目录具有写入权限,但这当然会带来安全隐患