JAVA--操作文件

参考文章:

http://www.cnblogs.com/zhuocheng/archive/2011/12/12/2285290.html

http://blog.csdn.net/smartcat86/article/details/4085739/

http://www.cnblogs.com/coffee/archive/2009/06/13/1502621.html

  1. 文件复制操作

//1.使用fileInputstream和 FileOutputStream建立输入输出流
//2.缓存空间byte数组 buffer
//3.判断读取到文件末尾时,读取到的值为-1
public static void copyFile(String src,String desc){
		try {
				FileInputStream in=new FileInputStream(src);
				File file=new File(desc);
				FileOutputStream out=new FileOutputStream(file);
				if(!file.exists())
					file.createNewFile();
				int c=0;
				byte[] buffer=new byte[1024];
				while((c=in.read(buffer))!=-1){
					for(int i=0;i<c;i++)
						out.write(buffer[i]);
				}
				System.out.println("end");
				in.close();
				out.close();
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}

2.写入文件操作

//用printStream来写文件
//printStream会自动刷新,写入byte数组之后会自动刷新
//通常调用他的print和write方法来写入字符或者字节
//与PrintWriter相似,但后者不会自动刷新
	public static void FilePrintStream(){
		try {
			FileOutputStream out=new FileOutputStream("G:\\test.txt");
			PrintStream print=new PrintStream(out);
			for(int i=0;i<10;i++){
				print.println("this is "+i+" file");
			}
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
//用stringbuffer来写文件
	//线程安全的可变字符序列。一个类似于 String 的字符串缓冲区,但不能修改
	public static void FileStringBuffer(){
		File file =new File("G:\\test1.txt");
		if(!file.exists())
			try {
				file.createNewFile();
				FileOutputStream out=new FileOutputStream(file,true);
				for(int i=0;i<20;i++){
					StringBuffer sb=new StringBuffer();
					sb.append("这是"+i+"  个");
					out.write(sb.toString().getBytes());
				}
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
	}

3.遍历某个路径下的所有文件

public static void refreshFileList(String strPath) { 
        File dir = new File(strPath); 
        File[] files = dir.listFiles();         
        if (files == null) 
            return; 
        for (int i = 0; i < files.length; i++) { 
            if (files[i].isDirectory()) { 
                refreshFileList(files[i].getAbsolutePath()); 
            } else { 
                String strFileName = files[i].getAbsolutePath().toLowerCase();
                System.out.println("---"+strFileName);
                filelist.add(files[i].getAbsolutePath());                    
            } 
        } 
   }

关键是判断为文件夹之后,回调自己;注意dir.listFiles()判断为空

你可能感兴趣的:(JAVA--操作文件)