java 文件与流

java 文件与流的总结

一 java 读写文件

 Java的IO操作都是基于流进行操作的,为了提高读写效率一般需要进行缓冲。

    简单的示例程序如下:
    
   
 /**
 * 读出file1中的内容,写入file2中
 *
 */

BufferedReader reader=new BufferedReader(new FileReader(file1));
    BufferedWriter writer=new BufferedWriter(new FileWriter(file2));
    
    String str=null;
     str=reader.readLine();
    while(str!=null)
    {
     writer.write(str+"/r/n");
     
     str=reader.readLine();
    }
    reader.close();
    writer.close(); 

完整的示例:

import java.io.*;
public class FileReading {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub 

  System.out.println("input the direction's path:");
  BufferedReader reader=new BufferedReader(new InputStreamReader(System.in));
  
  try
  {
   String path=reader.readLine();
   String fileName;
   makeDir(path);
   System.out.println("input the filename:");
   fileName=reader.readLine();
   File file=makeFile(path,fileName);
   writeFile(file);

System.out.println("input the file name or the direction:");
   BufferedReader buff=new BufferedReader(new InputStreamReader(System.in));   
   File f=new File(buff.readLine().toString());
   listFile(f);
  }
  catch(Exception ex)
  {
   System.err.println(ex.getMessage());
  }
  
 }
 
 public static void makeDir(String path)//创建目录,---文件夹
 {
  try
  {
   File file=new File(path);   
   if(!file.exists())
    file.mkdir();   
    
  }
  catch(Exception ex)
  {
   System.err.println(ex.getMessage());
  }
  
 }
 
 public static File makeFile(String path,String fileName)//创建文件
 {
  File f=new File(path,fileName);
  try
  {   
   if(!f.exists())
    f.createNewFile();   
  }
  catch(Exception ex)
  {
   System.err.println(ex.getMessage());
  }
  finally
  {
   return f;
  }
 }
 
 public static void writeFile(File file)//将一个文件中的内容写入另一个文件
 {
  try
  {
   if(!file.exists())
    file.createNewFile();
   else
   {
    System.out.println("input the file:");
    BufferedReader buff=new BufferedReader(new InputStreamReader(System.in)); 
    String pathname=buff.readLine();
    File f=new File(pathname);
    
    BufferedReader reader=new BufferedReader(new FileReader(f));
    BufferedWriter writer=new BufferedWriter(new FileWriter(file));
    
    String str=null;
     str=reader.readLine();
    while(str!=null)
    {
     writer.write(str+"/r/n");
     
     str=reader.readLine();
    }
    reader.close();
    writer.close();
   }
  }
   catch(Exception ex)
   {
    System.err.println(ex.getMessage());
   }

  
 }

public static void listFile(File file)//列出所有目录及文件
 {  
  File[] list= file.listFiles();
  int filecout=0;
  int dircout=0;
  for(File f:list)
  {
   if(f.isDirectory())
   {
    System.out.println("this is direction "+(++dircout)+" :"+f.getName());
   }
   else if(f.isFile())
   {
    System.out.println("This is file:"+(++filecout)+" :"+f.getName());
   }
  }
 }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值