Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将已经生成的批处理文件写入Java中的特定目录?_Java_File Handling_Buffer - Fatal编程技术网

如何将已经生成的批处理文件写入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 IO
FileUtils
或仅使用标准Java API

一旦决定了要如何复制文件,您可能会遇到另一个问题。默认情况下,Windows 7将阻止您写入某些目录,例如
C:\
。您可以尝试写入其他目录,例如临时目录或用户主目录中的任何位置。如果您必须写入C:\,最简单的解决方案(除了在Windows中提前创建文件并在程序中覆盖它之外,这可能会破坏目的)是禁用UAC并确保您的用户帐户对该目录具有写入权限,但这当然会带来安全隐患