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则按字节流的方式读取文件;