zoukankan      html  css  js  c++  java
  • java文件操作 之 创建文件夹路径和新文件

    一:问题

    (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));
        }

    二:代码实现

    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" + " ";//   
    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. }  


    总之,FileWriter 就是牛,如果文件名 的文件不存在,先创建再读写;存在的话直接追加写,关键字true表示追加   但是他只能一行一行的读写,不如代缓冲的读写效率高

    java多种方式读文件,追加文件内容,对文件的各种操作请见:java多种方式读文件,追加文件内容,对文件的各种操作

  • 相关阅读:
    DotnetBrowser入门教程-(2)启动简单的Web服务
    DotnetBrowser入门教程-(1)浏览器控件使用
    Delphi初始化与结束化
    用友二次开发之用友备份专家[1.01]
    用友账套恢复工具
    用友二次开发之总账自定义结转
    用友二次开发之登陆界面
    用友二次开发之U810.1销售预订单导入
    表格控件表头栏目(Column)与数据表头步
    Delphi开发的IP地址修改工具
  • 原文地址:https://www.cnblogs.com/jpfss/p/8868208.html
Copyright © 2011-2022 走看看