博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java文件操作 之 创建文件夹路径和新文件
阅读量:5751 次
发布时间:2019-06-18

本文共 3978 字,大约阅读时间需要 13 分钟。

一:问题

(1)java 的如果文件夹路径不存在,先创建;

(2)如果文件名 的文件不存在,先创建再读写;存在的话直接追加写,关键字true表示追加

(3)File myPath = new File(toFilePath);

   if ( !myPath.exists()){//若此目录不存在,则创建之// 这个东西只能简历一级文件夹,两级是无法建立的。。。。。
           myPath.mkdir();
           System.out.println("创建文件夹路径为:"+ toFilePath);
}
         如上代码只能创建一级目录,不能够创建二级目录;即只能创建当前级的目录,如果上一级目录还不存在,则创建失败;当然可以通过递归创建来解决这个问题

File myPath = new File(toFilePath); 仅仅是把路径传递给了File.java类的私有属性,请看源代码,并没有打开文件,所以不会抛出FileNotFoundException

(4) //写入文件名处理

                String fileN = toFilePath + "\\" + fileName;

            BufferedWriter writer = new BufferedWriter(new FileWriter(new File(fileN)));

       与下面的代码对比

File file=new File(originalPath);

                if(file.isFile() && file.exists()){ //判断文件是否存在
                InputStreamReader read = new InputStreamReader(
                new FileInputStream(file),encoding);//考虑到编码格式
                BufferedReader bufferedReader = new BufferedReader(read);

}

其实,FileWriter 是包装了(调用了) FileOutputStream()函数 源代码如下:所以两者有些类似的,只是stream可以过滤编码罢了

public FileWriter(File file) throws IOException {

        super(new FileOutputStream(file));
    }

二:代码实现

[java]
  1. package edu.tju.cs;  
  2.   
  3. import java.io.File;  
  4. import java.io.FileNotFoundException;  
  5. import java.io.FileWriter;  
  6. import java.io.IOException;  
  7. import java.io.RandomAccessFile;  
  8.   
  9.   
  10. public class AllTest {  
  11.       
  12.     /*public static void main(String[] args){
     
  13.         System.out.println("****\\\\"); 
  14.         String str = "a\\b\\b\\c.csv|aaaaa"; 
  15.         String[] chars = str.split("\\\\"); 
  16.         String[] fileName = chars[3].split("\\.");// u002e 
  17.         String[] tmp = chars[3].split("\\u007c");//  \\u007c 
  18.         for(String cha:chars){
     
  19.             System.out.println(cha); 
  20.         } 
  21.         System.out.println(fileName[0]); 
  22.         System.out.println(tmp[1]); 
  23.     }*/  
  24.       
  25.      public static void main(String args[])  
  26.      {  
  27.             StringBuffer fileBuf=new StringBuffer();  
  28.             String filePar = "d:\\test";// 文件夹路径  
  29.             File myPath = new File( filePar );  
  30.             if ( !myPath.exists()){
    //若此目录不存在,则创建之  
  31.                 myPath.mkdir();  
  32.                 System.out.println("创建文件夹路径为:"+ filePar);  
  33.             }  
  34.             // 文件夹路径存在的情况下  
  35.             String filename = "test.txt";// 文件名  
  36.             try {  
  37.                 FileWriter fw = new FileWriter(filePar + "\\" + filename,true);// filePar + "\\" + filename,true  
  38.                 // FileWriter 就是牛,如果文件名 的文件不存在,先创建再读写;存在的话直接追加写,关键字true表示追加  
  39.                 String originalLine = "aaaaaaaaaa" + "\n";//   
  40.                 System.out.println("*** "+ originalLine);  
  41.                 fw.write(originalLine);  
  42.                 // 关闭写文件,每次仅仅写一行数据,因为一个读文件中仅仅一个唯一的od  
  43.                 fw.close();  
  44.             } catch (IOException e) {  
  45.                 // TODO Auto-generated catch block  
  46.                 e.printStackTrace();  
  47.             }  
  48.       }  
  49. }  
package edu.tju.cs;import java.io.File;import java.io.FileNotFoundException;import java.io.FileWriter;import java.io.IOException;import java.io.RandomAccessFile;public class AllTest {        /*public static void main(String[] args){        System.out.println("****\\\\");        String str = "a\\b\\b\\c.csv|aaaaa";        String[] chars = str.split("\\\\");        String[] fileName = chars[3].split("\\.");// u002e        String[] tmp = chars[3].split("\\u007c");//  \\u007c        for(String cha:chars){            System.out.println(cha);        }        System.out.println(fileName[0]);        System.out.println(tmp[1]);    }*/         public static void main(String args[])     {            StringBuffer fileBuf=new StringBuffer();            String filePar = "d:\\test";// 文件夹路径            File myPath = new File( filePar );            if ( !myPath.exists()){//若此目录不存在,则创建之                myPath.mkdir();                System.out.println("创建文件夹路径为:"+ filePar);            }            // 文件夹路径存在的情况下            String filename = "test.txt";// 文件名            try {                FileWriter fw = new FileWriter(filePar + "\\" + filename,true);// filePar + "\\" + filename,true                // FileWriter 就是牛,如果文件名 的文件不存在,先创建再读写;存在的话直接追加写,关键字true表示追加                String originalLine = "aaaaaaaaaa" + "\n";//                 System.out.println("*** "+ originalLine);                fw.write(originalLine);                // 关闭写文件,每次仅仅写一行数据,因为一个读文件中仅仅一个唯一的od                fw.close();            } catch (IOException e) {                // TODO Auto-generated catch block                e.printStackTrace();            }      }}
总之, FileWriter 就是牛,如果文件名 的文件不存在,先创建再读写;存在的话直接追加写,关键字true表示追加   但是他只能一行一行的读写,不如代缓冲的读写效率高

请见:

转载地址:http://ktkkx.baihongyu.com/

你可能感兴趣的文章
BZOJ - 3578: GTY的人类基因组计划2
查看>>
【http】post和get请求的区别
查看>>
时间助理 时之助
查看>>
英国征召前黑客组建“网络兵团”
查看>>
pyjamas build AJAX apps in Python (like Google did for Java)
查看>>
centos5.9使用RPM包搭建lamp平台
查看>>
[LeetCode] Merge Intervals
查看>>
Struts2 学习小结
查看>>
在 Linux 系统中安装Load Generator ,并在windows 调用
查看>>
桌面支持--打不开网页上的pdf附件解决办法(ie-tools-compatibility)
查看>>
POI getDataFormat() 格式对照
查看>>
/etc/resolv.conf文件详解
查看>>
【转】VC的MFC中重绘函数的使用总结(整理)
查看>>
JQuery日记_5.13 Sizzle选择器(六)选择器的效率
查看>>
oracle查看经常使用的系统信息
查看>>
Django_4_视图
查看>>
Linux的netstat命令使用
查看>>
大快网站:如何选择正确的hadoop版本
查看>>
经过这5大阶段,你离Java程序员就不远了!
查看>>
IntelliJ IDEA 连接数据库详细过程
查看>>