Java文件操作_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > Java文件操作

Java文件操作

 2011/9/6 8:13:02  hsyzijvaa  http://hsyzijvaa.iteye.com  我要评论(0)
  • 摘要:java对文件的操作,提供了上百个类来操作。对与我们常用的有,outputstreamwriter、writer、bufferedoutputstream、fileoutputstream以及fileinputstream、reader、inputstreamreader等相关类先做个比较:对文本文件操作时,我们一般使用filereader、bufferedreader类;而非文件、即二进制文件操作时,我们使用inputstream以及相关类、而对于流的操作,在远程接口rmi
  • 标签:文件 Java 操作
    java对文件的操作,提供了上百个类来操作。
?
对与我们常用的有,outputstreamwriter、writer、bufferedoutputstream、fileoutputstream以及fileinputstream、reader、inputstreamreader等相关类
?
先做个比较:对文本文件操作时,我们一般使用filereader、bufferedreader类;而非文件、即二进制文件操作时,我们使用inputstream以及相关类、而对于流的操作,在远程接口rmi,或者通信类的业务处理中,应用较多。
?
fileoutputstream以及bufferedoutputstream对文件写的操作;当操作大文件时,使用bufferedoutputstream的效率会明显比fileoutputstream高很多。
当然bufferedoutputstream继承自filteroutputstream;所以其功能也相当的丰富。并且在很多应用中我们都用到了filteroutputstream这个类,比如zip,jar包、rmi类和接口、crypto提供加密的类和接口等等
?
文件操作类中,也还有很多比较有用的类,比如文件流描述类filedescriptor等等;有待挖掘
?
当有特殊需求是,我们可以继承上面的接口或者扩展上面的类,来实现特殊的业务。
?
?
package com.xiva.demo;import java.io.bufferedoutputstream;import java.io.bufferedreader;import java.io.bufferedwriter;import java.io.file;import java.io.fileoutputstream;import java.io.filereader;import java.io.filewriter;import java.io.ioexception;import java.io.inputstream;import java.io.outputstream;import java.io.outputstreamwriter;import java.io.reader;import java.io.writer;import java.util.scanner;import org.junit.test;public class filedemo {		/**	 * 	 * @description 删除文件	 * @author xiva	 */	@test public void deletefile(){		file file = new file("src/_tian.jpg");		boolean res = false;		if(file.exists()){			res = file.delete();		}		if(res){			system.out.println("delete success!");		}else{			system.out.println("delete fail!");		}	}		/**	 * 	 * @description 文件重命名	 * @author xiva	 */	@test public void renamefile(){		file file = new file("src/_tian.jpg");		boolean res = false;				if(file.exists() &amp;&amp; file.isfile()){			res = file.renameto(new file("src/tian.jpg"));		}		if(res){			system.out.println("copy success!");		}else{			system.out.println("copy fail!");		}	}		/**	 * 	 * @description 读取文本文件内容	 * @author xiva	 * @throws ioexception	 */	@test public void readfile() throws ioexception{		inputstream is = filedemo.class.getclassloader().getresourceasstream("dbcpconfig.properties");//		file file = new file("src/content.txt");//		filereader freader = new filereader(file);		//流编码才是字节编码//		reader isreader = new inputstreamreader(is, "utf-8");//		bufferedreader buffer = new bufferedreader(isreader);//		string linestr;//		linestr = buffer.readline();//		while(linestr != null){//			system.out.println(linestr);//			linestr = buffer.readline();//		} 		//scanner类提供更多方便的方法,最为主要的是为文本文件操作提供便利的函数		scanner sc = new scanner(is,"utf-8");		while(sc.hasnextline()){			system.out.println(sc.nextline());		}				is.close();	}		/**	 * 	 * @description filewriter写文件	 * @author xiva	 * @throws ioexception	 */	@test public void writefile() throws ioexception{		file file = new file("src/test.txt");		if(!file.exists()){			file.createnewfile();		}		//		reader isreader = new filereader(file);//		bufferedreader buffer = new bufferedreader(isreader);//		string linestr;//		linestr = buffer.readline();				scanner sc = new scanner(file,"utf-8");		stringbuffer sbuffer = new stringbuffer();		while (sc.hasnextline()){			sbuffer.append(sc.nextline());		}		//append if true, then bytes will be written to the end of the file rather than the beginning		filewriter fw = new filewriter(file,true);		bufferedwriter bw = new bufferedwriter(fw);				bw.append(sbuffer.tostring());		bw.write("i'm xiva,我是xiva");		bw.newline();		bw.write("i'm njit.shot_go,我是shot_go");//		string message = "i'm njit.shot_go,我是shot_go";//		for(char mc:message.tochararray()){//			bw.append(mc);//		}				bw.flush();		bw.close();		fw.close();	}		/**	 * 	 * @description fileoutputstream写文件	 * @author xiva	 * @throws ioexception	 */	@test public void writefosfile() throws ioexception{		file file = new file("src/test.txt");		if(!file.exists()){			file.createnewfile();		}		//append if true, then bytes will be written to the end of the file rather than the beginning		fileoutputstream fos = new fileoutputstream(file,true);		bufferedoutputstream bos = new bufferedoutputstream(fos);		for (int i=0; i<100000; i++){			string message = "i'm njit.shot_go,我是shot_go";			bos.write(message.getbytes());			bos.flush();			bos.write("\r\n".getbytes());		}		bos.close();		fos.close();	}		/**	 * 	 * @description 文件列表	 * @author xiva	 * @param rootfile	 */	public void listdictionary(file rootfile){		file[] files = rootfile.listfiles();		for (file file:files){			if(file.isdirectory()){				system.out.println("add to tree node");				listdictionary(file);			}else{				system.out.println(file.getpath());			}		}	}		@test public void testlistdictionary(){		file rootfile = new file("e:"+ file.separatorchar +"liber");		listdictionary(rootfile);	}	}
?而对文件的操作,总结为:
1、删除文件或文件夹
2、创建文件或文件夹
3、读取文本或者二进制文件
4、写文本或者二进制文件(对于写二进制文件,我认为在图像处理以及音频视频处理中会使用到)
5、重命名文件,遍历文件,移动文件等等
 
发表评论
用户名: 匿名