`

java IO应用

阅读更多
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Date;

/**
* @author 刘毅
* @date 2010-2-25
* @ClassName FileUtils.java
* @Email liu_yi126@163.com
* @param 文件操作
* @param
*/
public class FileUtils {
/**
  * 复制文件,无乱码
  * @param srcPath 原文件路径
  * @param destPath 目的文件路径
  */
public static void copyForFile(String srcPath,String destPath){
  BufferedInputStream br = null;
  BufferedOutputStream bw = null;
  try {
  br =new BufferedInputStream(new FileInputStream(srcPath));
  bw = new BufferedOutputStream(new FileOutputStream(destPath));
  byte[] b = new byte[1024];
  int size = -1;
  //循环读
  while ((size = br.read(b)) != -1) {
    bw.write(b, 0, size);
  }
  } catch (FileNotFoundException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }finally{
   try {
    if(br != null){
     br.close();
    }
    if(bw != null){
     bw.close();
    }
   } catch (IOException e) {
    e.printStackTrace();
   }
  }
}
/**
  * 读文件,无乱码
  * @param srcFile 原文件
  */
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 (IOException e) {
   e.printStackTrace();
  } finally {
    try {
     if (br != null) {
     br.close();
     }
    } catch (IOException 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 (MalformedURLException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }finally{
   try {
    if(br != null){
     br.close();
    }
   } catch (IOException 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("sjkd39840823094你好啊啊啊啊啊啊 ");
  } catch (FileNotFoundException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  } finally{
   try {
    if(fw != null){
     fw.close();
    }
   } catch (IOException e) {
    e.printStackTrace();
   }
  }
}
/**
  * 写文件,无乱码,以数组形式写入
  * @param srcFile 原文件
  * @param arg0
  */
public static void writerForFile(String srcFile,String []arg0){
  PrintWriter pw = null;
  try {
   pw = new PrintWriter(new FileWriter(srcFile));
   for (int i = 0; i < arg0.length; i++) {
    pw.write(arg0[i]);
    pw.println();
      }
  } catch (IOException e) {
   e.printStackTrace();
  }finally{
   if(pw != null){
    pw.close();
   }
   
  }
  }
/**
  * 获取所有文件夹下所有文件名字
  * @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 文件名路径
  * @return
  */
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("c:\\你.txt","d:\\好.txt");
  //readerForFile("c:\\你.txt");
  writerForFileAddModel("c:\\你.txt");
  /*
  String str[] = new String[3];
  str[0]="你=好";
  str[1]="0=1";
  str[2]="0=1";
  writerForFile("c:\\你.txt",str);
  */
  //deleteForFileName("src/test.properties");
  //getALLFileNameForFolder("C:/Youku/db");
//  File  file= new File("c://1");
//  deleteForALLFile(file);
  //deleteForFileSuffix("F:/1");
  //numForFile("F:/1");
  //renameForFileName("c:/你.txt");
//  readerForURLToFile("http://www.qq.com");
}
}


分享到:
评论

相关推荐

    提高Java IO操作的性能

    提高Java IO操作的性能 虽然抱怨Java程序性能不佳的呼声由来已久,但实际上,如果开发者在整个开发周期内都能够关注性能问题,Java程序完全可以和C/C++程序一样快。本文分析了Java IO应用中一些常见的性能问题。

    Java IO应届生培训讲义

    综上所述,Java IO培训讲义通过系统介绍Java IO的基本概念和模型,帮助应届生理解并掌握Java IO类库的使用,特别是在了解和应用不同IO模型时的注意事项和实践方法。通过这份讲义,初学者能更好地理解和编写涉及Java ...

    Java IO_NIO

    Java IO(Input/Output)是Java编程语言中用于处理输入输出操作的基础框架,它提供了丰富的类库,使得程序能够与各种设备、文件、...理解和掌握Java IO与NIO的使用,对于提升Java应用程序的性能和可扩展性至关重要。

    Java的io的应用

    Java的IO(Input/Output)是Java编程中的一个重要领域,主要负责数据的输入与输出操作。在Java中,IO API提供了丰富的类和接口,使得开发者能够有效地读取、写入数据,无论是从文件、网络还是内存。下面我们将深入...

    Java IO 使用例

    在“JavaIODemo”这个示例中,可能会包含以上提到的一些或全部Java IO操作的代码实例,通过这些实例,我们可以学习如何在实际项目中应用Java IO API。实践是掌握Java IO的最佳方式,通过对这些示例的分析和运行,...

    Java IO处理类的汇总

    本篇文章将全面解析Java IO处理类,包括基本概念、常用类库、流的概念及分类,以及实际编程中的应用。 首先,Java IO体系基于流(Stream)的概念,流是数据的序列,可以是从输入源读取或向输出目标写入。Java IO提供...

    Java IO 与 装饰模式

    在Java IO系统中,装饰模式被广泛应用于构建灵活且可扩展的输入输出流体系。 1. Java IO体系结构: Java IO库基于流的概念,流是数据传输的抽象表示,分为字节流(处理单个字节的数据)和字符流(处理Unicode字符的...

    Java IO 编程集合

    在这个集合中,我们主要探讨的是Java IO在文件读写方面的实践应用。 一、基础概念 1. InputStream与OutputStream:这是Java IO体系中的两大基本接口,分别用于数据的读取和写入。InputStream代表字节输入流,...

    利用缓冲区提高Java应用程序的IO性能

    ### 利用缓冲区提高Java应用程序的IO性能 #### 摘要与背景介绍 Java作为一门具有跨平台特性的编程语言,在多个领域都获得了广泛的应用。随着Java应用的不断扩展,其性能问题逐渐成为人们关注的重点,尤其是输入...

    java IO详解课件

    ### Java IO详解知识点 #### 一、Java IO系统概述 - **Java I/O系统的重要性**:Java I/O系统是Java编程中的基础组成部分之一,用于处理数据的输入与输出。理解和熟练掌握Java I/O系统对于开发高质量的应用程序至...

    java IO流精讲 JAVA IO流实例开发

    Java IO流是Java平台中用于处理输入/输出操作的核心组件,它允许程序与各种数据源(如文件、网络连接、内存缓冲区等)进行交互。Java IO流的精讲涵盖了许多概念和技术,包括流的分类、流的方向、缓冲区的使用、字符...

    java io 与java nio区别

    这个例子展示了如何使用传统的Java IO来实现一个服务器端的应用程序,它可以接收客户端发送的消息,并将接收到的信息原样返回给客户端。这里使用了`ServerSocket`和`Socket`来进行网络通信,通过`BufferedReader`来...

    java小项目练习IO实现

    在这个“java小项目练习IO实现”中,我们将探讨如何利用Java的IO流来实现本地数据的序列化与反序列化,以及如何将这些概念应用到实际项目中,比如“Olymplic Games Project(IO版)”。 首先,让我们理解什么是序列化...

    JAVA IO流技术

    理解并熟练运用Java IO流技术是开发Java应用程序的关键,它能够有效地处理数据的读写操作,无论是简单的文本文件还是复杂的网络通信。在实际编程中,根据需求选择适当的流类型,结合处理流进行优化,可以构建出高效...

    java io流学习笔记1

    本文将深入探讨Java IO流的基本概念、类型以及它们在实际开发中的应用。 首先,理解IO流的基本概念至关重要。IO流可以分为两大部分:输入流(Input Stream)和输出流(Output Stream)。它们分别用于从源获取数据和...

    Java_IO完全总结

    Java IO系统主要包括两个包:`java.io`和`java.nio`(New IO),其中`java.io`提供了一系列基于流的I/O操作接口与实现类,而`java.nio`则提供了更高效的数据访问方式,如通道和缓冲区等。 Java IO系统的设计原则之...

    IO流 javaio java 流

    Java中的IO流是Java核心库的重要组成部分,它用于在不同数据源之间传输数据。Java IO流分为两大类:字符流(Character Stream)和字节流(Byte ...理解并熟练运用这些流可以帮助我们构建高效、可靠的Java应用程序。

    Java IO 工具类大全

    本篇文章将全面解析Java IO工具类,帮助你理解并掌握其在实际开发中的应用。 一、Java IO基础 Java IO体系主要由流(Stream)组成,分为字节流和字符流两大类,分别处理字节数据和字符数据。字节流包括InputStream...

    java.io.Reader 和 java.io.InputStream 的区别

    ### Java.io.Reader与Java.io.InputStream的关键差异解析 在深入探讨`java.io.Reader`与`java.io.InputStream`的具体差异之前,我们首先需要理解这两者在Java I/O操作中的基础角色。`java.io.Reader`和`java.io....

Global site tag (gtag.js) - Google Analytics