zoukankan      html  css  js  c++  java
  • Java IO中的FileReader 和 FileWriter读写文件,和创建多级文件夹

    Java代码  收藏代码
    1. package pack.java.io;  
    2.   
    3. import java.io.BufferedInputStream;  
    4. import java.io.File;  
    5. import java.io.FileInputStream;  
    6. import java.io.FileNotFoundException;  
    7. import java.io.FileOutputStream;  
    8. import java.io.FileReader;  
    9. import java.io.FileWriter;  
    10. import java.io.IOException;  
    11. import java.io.InputStream;  
    12.   
    13. import sun.misc.Resource;  
    14.   
    15. public class CreateFileDemo {  
    16.     /** 
    17.      * 测试主方法; 
    18.      * @param args 
    19.      */  
    20.     public static void main(String[] args) {  
    21.         //System.getProperty("user.dir")是取得当前项目的根目录;然后,在拼出文件所在的目录;  
    22.         String file=System.getProperty("user.dir")+"\src"+File.separator+"\myFile.txt";  
    23.         File writeFile=new File("C:\iodemo\File\");  
    24.         System.out.println("获得父级目录:"+writeFile.getParent());  
    25.           
    26.         //如果目录不存在,则创建目录;  
    27.         if(!writeFile.exists()){  
    28.             //mkdirs是创建多级目录,而mkdir是创建单级目录;  
    29.             writeFile.mkdirs();  
    30.         }  
    31.         FileReader fileReader  = null;  
    32.         FileWriter fileWrite  = null;  
    33.         try {  
    34.             //fileInputStream=new FileInputStream(file);  
    35.             //fileOutputStream = new FileOutputStream(new File(writeFile.getPath()+"\writeFile.txt"));  
    36.             fileReader = new FileReader(file);  
    37.             int c=0;  
    38.             try {  
    39.                 fileWrite = new FileWriter(writeFile.getPath()+"\writeFile.txt");  
    40.                 while ((c=fileReader.read())!=-1) {  
    41.                     //输出到C:\iodemo\File\test目录下的writeFile.txt文件中;  
    42.                     fileWrite.write(c);  
    43.                 }  
    44.                 System.out.println("成功输出文件到:"+writeFile.getPath());  
    45.             } catch (IOException e) {  
    46.                 // TODO Auto-generated catch block  
    47.                 e.printStackTrace();  
    48.             }  
    49.         } catch (FileNotFoundException e) {  
    50.             // TODO Auto-generated catch block  
    51.             e.printStackTrace();  
    52.         }finally{  
    53.                 try {  
    54.                     //以下操作是:关闭输入流和输出流;  
    55.                     if(fileReader!=null){  
    56.                         fileReader.close();  
    57.                     }  
    58.                     if(fileWrite!=null){  
    59.                         fileWrite.close();  
    60.                     }  
    61.                 } catch (IOException e) {  
    62.                     // TODO Auto-generated catch block  
    63.                     e.printStackTrace();  
    64.                 }  
    65.         }  
    66.     }  
    67.       
    68. }  

     FileInputStream 类 
    1 ) FileInputStream 类介绍: 
    以字节为单位的流处理。字节序列:二进制数据。与编码无关,不存在乱码问题。 
    FileInputStream 类的主要方法有: 
    Read(), read(byte[] b), read (byte[],int off,int len) ,available(); 

    2 ) FileInputStream 类与 FileReader 类的区别: 

    两个类的构造函数的形式和参数都是相同的,参数为 File 对象或者表示路径的 String ,它们到底有何区别呢? 
    FileInputStream :以字节流方式读取;
    FileReader :把文件转换为字符流读入; 
    InputStream提供的是字节流的读取,而非文本读取,这是和Reader类的根本区别。用Reader读取出来的是char数组或者String ,使用InputStream读取出来的是byte数组。
    Reader类及其子类提供的字符流的读取char,inputStream及其子类提供字节流的读取byte,所以FileReader类是将文件按字符流的方式读取,FileInputStream则按字节流的方式读取文件;

  • 相关阅读:
    Android Studio 配置快速生成模板代码
    Android开发 AndroidViewModel详解
    adb命令 logcat日志抓取
    Android开发 自定义View_白色圆型涟漪动画View
    Java Queue队列
    Java 几种队列区别的简单说明
    Android开发 retrofit下载与上传
    Android开发 retrofit入门讲解 (RxJava模式)
    Java学习 时间类 Period类与Duration类 / LocalDate类与Instant类 用法详解
    Java 学习 时间格式化(SimpleDateFormat)与历法类(Calendar)用法详解
  • 原文地址:https://www.cnblogs.com/sdustyuleyi/p/4953523.html
Copyright © 2011-2022 走看看