java createNewFile创建文件失败 系统找不到指定的路径

一、代码

package com.task.test;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class T5 {

    public static void main(String[] args) throws IOException {
        List list = new ArrayList<>();
        list.add("1");
        list.add("2");
        list.add("3");
        T5.generateText2("E:/1/2/3/4/5/file2.txt",list);
        T5.generateText1("E:/1/2/3/4/5/file1.txt",list);

    }

    public static void generateText1(String fileName,List list) throws IOException{

        /* 写入Txt文件 */
        File writename = new File(fileName);
        if(!writename.isFile() && !writename.exists()){ //判断文件是否存在){}
            String  path = fileName.substring(0,fileName.lastIndexOf("/"));
            new File(path).mkdirs();
            String name = fileName.substring(fileName.lastIndexOf("/"));
            new File(name).createNewFile();
        }
        BufferedWriter out = new BufferedWriter(new FileWriter(writename,true));
        if (list.size()>0) {
            for (int i = 0; i java createNewFile创建文件失败 系统找不到指定的路径_第1张图片当先执行方法1,再执行方法2,就没问题 

java createNewFile创建文件失败 系统找不到指定的路径_第2张图片 创建文件如图所示

 

java createNewFile创建文件失败 系统找不到指定的路径_第3张图片 先执行方法2,再执行方法1,就会出现路径找不到

 三、代码分析

        在两个方法中,后半段的“向文件中填充数据”都是相同的,不同的是,前者先创建了文件目录 new File(path).mkdirs(); ,后创建了文件 new File(name).createNewFile();  而后者直接创建文件。

        查看createNewFile源码:java createNewFile创建文件失败 系统找不到指定的路径_第4张图片

        Atomically创建一个新的空文件,该文件由该抽象路径名命名,当且仅当具有该名称的文件还不存在时。对于可能影响文件的所有其他文件系统活动,检查文件是否存在以及如果文件不存在则创建文件是一个原子操作。
        注意:此方法不应用于文件锁定,因为无法使生成的协议可靠地工作。应该使用FileLock功能。
        返回:如果命名文件不存在并且已成功创建,则为true;如果命名文件已存在,则为false 

java createNewFile创建文件失败 系统找不到指定的路径_第5张图片 

        表示平台本地文件系统的FileSystem对象。

        此抽象路径名的规范化路径名字符串。规范化路径名字符串使用默认的名称分隔符,并且不包含任何重复或冗余的分隔符。 

 

 

你可能感兴趣的:(Java,领域小记,java,jvm,开发语言)