java - 如何将已制作的批处理文件写入 Java 中的特定目录?

标签 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 {

    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/

相关文章:

c - 检测阻塞打开的 FIFO 文件的删除

python - (result, consumed) = self._buffer_decode(data, self.errors, final) 错误

javascript - 有没有办法修改 Canvas 中的像素而不必复制整个缓冲区?

java - Spring应用程序Thymeleaf中的css问题

Java 泛型用例

c - 在 C 中反序列化文本文件数据(链表)

Ruby 无法打开文件 ( Errno::ENOENT ) 但可以从 IRB 打开相同的路径

java - java应用程序中的缓冲图像问题

java - 如何从键盘生成无限字符串

使用数组和 arrayList 的 Java 类