前段时间看了看Java IO 现在在这里记一下笔记,以便自己以后查阅
package javaIO;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class MyIOUitl {
/***
* 打印 指定目录所有的 文件
*
* **/
public static void ListAllFiles(String fileName){
File file = new File(fileName);
if(!file.exists())
{
System.out.println("文件"+fileName+"不存在!");
return;
}
if(!file.isDirectory())
{
System.out.println(fileName+"不是一个文件夹!");
return;
}
File [] files = file.listFiles();
for (File f : files)
{
if(f.isDirectory())
{
ListAllFiles(f.toString());
}else
{
System.out.println(f.toString());
}
}
}
/***
* 按指定长度复制文件
* */
public static void copyFile(File srcFile ,File destFile) throws IOException
{
if(!srcFile.exists())
{
throw new IllegalArgumentException("文件"+srcFile+"不存在!");
}
if(srcFile.isDirectory())
{
throw new IllegalArgumentException(srcFile+"不是一个文件!");
}
FileInputStream fis = new FileInputStream(srcFile);
FileOutputStream fos = new FileOutputStream(destFile);
byte [] buf = new byte [8*1024];
int len = 0;
while((len = fis.read(buf,0,buf.length))!=-1)
{
fos.write(buf,0,len);
fos.flush(); //刷新一次
}
fis.close();
fos.close();
}
/****
* 带缓冲的复制文件
*
* */
public static void copyFileBuffered(File srcFile,File destFile) throws IOException
{
if(!srcFile.exists())
{
throw new IllegalArgumentException("文件"+srcFile+"不存在!");
}
if(srcFile.isDirectory())
{
throw new IllegalArgumentException(srcFile+"不是一个文件!");
}
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(srcFile));
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(destFile));
int a = 0;
while((a=bis.read())!= -1)
{
bos.write(a);
bos.flush();
}
bis.close();
bos.close();
}
}
ListAllFiles这个方法是列出给定文件夹下所有的文件
copyFile 和copyFileBuffered都是复制文件,copyFileBuffered是带缓冲的复制,经测试copyFile速度更胜一筹。。