Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.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中的creatNewFile方法在未引发异常时不创建文件_Java_File - Fatal编程技术网

java中的creatNewFile方法在未引发异常时不创建文件

java中的creatNewFile方法在未引发异常时不创建文件,java,file,Java,File,我正在尝试创建一个新文件并写入其中。我指定的路径是手动创建的,没有问题。但它不会引发任何异常,但不会创建该文件:- import java.io.File; import java.io.IOException; import java.io.PrintWriter; public class WriteFile { String filename=""; String path="D:\\myfiles"; public String write(Strin

我正在尝试创建一个新文件并写入其中。我指定的路径是手动创建的,没有问题。但它不会引发任何异常,但不会创建该文件:-

    import java.io.File;
    import java.io.IOException;
    import java.io.PrintWriter;

    public class WriteFile {

String filename="";
String path="D:\\myfiles";
public String write(String content, String name) throws IOException{
    filename=name+".txt";
    File file=new File(path+filename);
    if(!file.exists()){
        file.createNewFile();
    }
    String[] lines=content.split("\n");
    PrintWriter writer=new PrintWriter(path+filename,"utf-8");
    for(String line:lines){
        writer.println(line);
    }
    writer.close();
    return filename;
}

}

像那样设定你的路线。我想您想在
D:\\myfiles\\
位置下创建一个文本文件。所以你就这样定下你的路

String path="D:\\myfiles\\";

希望这能奏效。

请注意,如果您希望在某个特定位置使用文件分隔符,则应确保有一个分隔符,而不是依赖正确的输入

其他说明:

  • 尽可能通过方法上的参数传递值(除非这变得太复杂)
  • 新文件(父文件,文件)
    将根据需要放入分隔符,并在已放入分隔符时进行处理
  • 当可以使用局部变量时,不要使用字段
  • 在写入文件之前,不需要创建文件
  • 您不需要将文件拆分为行,因此可以将其作为行写入
  • 您可以使用try with resource来确保资源始终处于关闭状态
  • 如果您可以使一个方法或类
    成为静态的
    ,那么就这样做,因为它清楚地表明您不依赖于任何实例
总之

public static String write(String content, String path, String filename) throws IOException {
    File file=new File(path, filename);
    try (PrintWriter writer = new PrintWriter(file, "UTF-8")) {
        writer.println(content);
    }
    return file.getAbsolutePath();
}

像那样设定你的路线<代码>字符串路径=“D:\\myfiles\\”。希望这能起作用。哦,我的错:D,谢谢。它应该是一个以“myfiles”开头并具有扩展名“.txt”的文件。如果你认为某个文件没有被创建,通常意味着它没有被创建在你认为的地方。@SohamBanerjee我添加了答案,如果有效,请接受。