java IO应用

package com.sinosoft.io;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.Date;

public class IOTest {
 /*
  * 复制文件
  * @param srcPath 原文件路径
  * @param destPath 目的文件
  * */
 public static void copyForFile(String srcPath,String descPath){
  BufferedInputStream bis = null;
  BufferedOutputStream bos = null;
  try{
   bis = new BufferedInputStream(new FileInputStream(srcPath));
   bos = new BufferedOutputStream(new FileOutputStream(descPath));
   byte[] b = new byte[1024];
   int size = -1;
   //循环读
   while((size = bis.read(b))!= -1){
    bos.write(b, 0, size);
   }
  }catch(Exception e){
   e.printStackTrace();
  }finally{
   try{
    if(bis != null){bis.close();}
    if(bos != null){bos.close();}
   }catch(Exception e){
    e.printStackTrace();
   }
  }
 }
 /*
  * 读文件
  * @param srcPath 原文件路径
  * */
 public static void readerForFile(String srcFile){
  BufferedReader br = null;
  try{
   br = new BufferedReader(new InputStreamReader(new FileInputStream(srcFile),"GBK"));
   //一行一行的读
   String line;
   while((line = br.readLine())!= null){
    System.out.println(line);
   }
  }catch(Exception e){
   e.printStackTrace();
  }finally{
   try{
    if(br!=null){br.close();}
   }catch(Exception e){
    e.printStackTrace();
   }
   
  }
 }
 /*
  * 读取URL
  * @param urlStr url,需加http://
  * */
 public static void readerForURLToFile(String urlStr){
  BufferedReader br = null;
  StringBuffer sb = null;
  try{
   URL url = new URL(urlStr);
   br = new BufferedReader(new InputStreamReader(url.openStream(),"GBK"));
   sb = new StringBuffer();
   String str = null;
   while((str=br.readLine())!=null){
    sb.append(str).append("\r\n");
   }
   System.out.println(sb);
  }catch(Exception e){
   e.printStackTrace();
  }finally{
   try{
    if(br!=null){br.close();}
   }catch(Exception e){
    e.printStackTrace();
   }
   
  }
 }
 /*
  * 写文件 追加模式
  * @param srcFile 原文件
  * */
 public static void writerForFileAddModel(String srcFile){
  FileWriter fw = null;
  try{
   fw = new FileWriter(srcFile,true);
   fw.write("\r\n");
   fw.write("java IO应用");
  }catch(Exception e){
   e.printStackTrace();
  }finally{
   try{
    if(fw!=null){fw.close();}
   }catch(Exception e){
    e.printStackTrace();
   }
   
  }
 }
 /*
  * 获取所有文件夹下所有的文件名字
  * @param listFile 文件
  * */
 public static void getAllFileNameForFolder(String listFile){
  File file = new File(listFile);
  System.out.println("是目录吗?"+file.isDirectory());
  System.out.println("是文件吗?"+file.isFile());
  System.out.println("最后修改时间:"+new Date(file.lastModified()));
  System.out.println("路径:"+file.getPath());
  System.out.println("文件路径:"+file.getAbsolutePath());
  System.out.println("文件大小:"+file.length()+"字节");
  System.out.println("是否可写:"+file.canWrite());
  File[] array = file.listFiles();
  for(int i=0;i<array.length;i++){
   if(array[i].isFile()){
    System.out.println("文件名:"+array[i].getName()+
      "文件路径:"+array[i].getParent()+
   "文件全路径:"+array[i].getPath());
   }
  }
 }
 /*
  * 根据名字删除文件
  * @param fileName  文件名路径
  * */
 public static boolean deleteForFileName(String fileDir){
  boolean flag = false;
  File file = new File(fileDir);
  if(file.isFile() && file.exists()){
   file.delete();
   flag = true;
  }
  return flag;
 }
 /**
   * 重命名文件
   * @param newFileName 文件名
   */
  public static void renameForFileName(String newFileName){
   File afile = new File(newFileName);
   File bfile = new File("c:/1.txt");
   afile.renameTo(bfile);
  }
  /**
   * 删除文件夹,包括子文件夹,文件.包括隐藏文件
   * @param fileDir 文件夹路径
   */
  public static void deleteForALLFile(File fileDir){
   if(fileDir.exists()){ //是否存在
    if(fileDir.isDirectory()){//是否是目录
     File files[] = fileDir.listFiles();
         for(int i=0;i<files.length;i++){
            deleteForALLFile(files[i]);
      }
    }else{
     fileDir.delete();
    }
   }else{
    System.out.println("不存在目录:"+fileDir.getPath());
   }
  }
  /**
   *  根据后缀名删除文件
   * @param file 文件名
   */
  public static void deleteForFileSuffix(String fileDir){
   // 删除单一文件
   String aFile = fileDir;
   //根据字符返回最后一处出现的索引
   int suffixSymbol = aFile.lastIndexOf(".");
   String suffix =aFile.substring(suffixSymbol+1);
   System.out.println(suffix);
   File file = new File(aFile);
   if(suffix.equalsIgnoreCase("txt")){
    file.delete();
   }
  }  
  /**
   * 计算文件个数
   * @param fileDir 文件
   */
  public static void numForFile(String fileDir){
   File file = new File(fileDir);
   File []arrayFile =file.listFiles();
   System.out.println(arrayFile.length);
  }

 public static void main(String[] args) {
  copyForFile("F:\\密码.txt","F:\\密码1.txt");
  readerForFile("F:\\密码.txt");
  readerForURLToFile("http://www.baidu.com");
  writerForFileAddModel("F:\\密码.txt");
  getAllFileNameForFolder("F:\\");
  renameForFileName("F:\\密码.txt");
  File  file= new File("F:\\");
  deleteForALLFile(file);
  deleteForFileSuffix(".txt");
  numForFile("F:\\");

 }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值