|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
最后我再次声明,我并没有说不看好java,实际上我对java很乐观的,毕竟她正在不断改进中,我相信她总有一天会和.net并驾齐驱的对照Java中对文件的读写操纵之对照
JeruLiu
日期:November29,2000
版本:1.0
Java对文件举行读写操纵的例子良多,让初学者感应非常狐疑,我以为有需要将各类办法举行
一次剖析,回类,理清分歧办法之间的异同点。
一.在JDK1.0中,一般是用InputStream&OutputStream这两个基类来举行读写操纵的。
InputStream中的FileInputStream相似一个文件句柄,经由过程它来对文件举行操纵,相似的,在
OutputStream中我们有FileOutputStream这个对象。
用FileInputStream来读取数据的经常使用办法是:
FileInputStreamfstream=newFileInputStream(args[0]);
DataInputStreamin=newDataInputStream(fstream);
用in.readLine()来失掉数据,然后用in.close()封闭输出流。
完全代码见Example1。
用FileOutputStream来写进数据的经常使用办法是:
FileOutputStreamoutout=newFileOutputStream("myfile.txt");
PrintStreamp=newPrintStream(out);
用p.println()来写进数据,然后用p.close()封闭输出。
完全代码见Example2。
二.在JDK1.1中,撑持两个新的对象Reader&Writer,它们只能用来对文本文件举行操纵,而
JDK1.1中的InputStream&OutputStream能够对文本文件或二进制文件举行操纵。
用FileReader来读取文件的经常使用办法是:
FileReaderfr=newFileReader("mydata.txt");
BufferedReaderbr=newBufferedReader(fr);
用br.readLing()来读出数据,然后用br.close()封闭缓存,用fr.close()封闭文件。
完全代码见Example3。
用FileWriter来写进文件的经常使用办法是:
FileWriterfw=newFileWriter("mydata.txt");
PrintWriterout=newPrintWriter(fw);
在用out.print或out.println交往文件中写进数据,out.print和out.println的独一区分是后者写
进数据或会主动开一新行。写完后要记得用out.close()封闭输入,用fw.close()封闭文件。
完全代码见Example4。
--------------------------------------------------------------followingisthesourcecodeofexamples------------------------------------------------------
Example1:
//FileInputDemo
//DemonstratesFileInputStreamandDataInputStream
importjava.io.*;
classFileInputDemo{
publicstaticvoidmain(Stringargs[]){
//args.lengthisequivalenttoargcinC
if(args.length==1){
try{
//Openthefilethatisthefirstcommandlineparameter
FileInputStreamfstream=newFileInputStream(args[0]);
//ConvertourinputstreamtoaDataInputStream
DataInputStreamin=newDataInputStream(fstream);
//Continuetoreadlineswhiletherearestillsomelefttoread
while(in.available()!=0){
//Printfilelinetoscreen
System.out.println(in.readLine());
}
in.close();
}catch(Exceptione){
System.err.println("Fileinputerror");
}
}
else
System.out.println("Invalidparameters");
}
}
Example2:
//FileOutputDemo
//DemonstrationofFileOutputStreamandPrintStreamclasses
importjava.io.*;
classFileOutputDemo
{
publicstaticvoidmain(Stringargs[]){
FileOutputStreamout;//declareafileoutputobject
PrintStreamp;//declareaprintstreamobject
try{
//connectedto"myfile.txt"
out=newFileOutputStream("myfile.txt");
//Connectprintstreamtotheoutputstream
p=newPrintStream(out);
p.println("Thisiswrittentoafile");
p.close();
}catch(Exceptione){
System.err.println("Errorwritingtofile");
}
}
}
Example3:
//FileReadTest.java
//UserFileReaderinJDK1.1toreadafile
importjava.io.*;
classFileReadTest{
publicstaticvoidmain(String[]args){
FileReadTestt=newFileReadTest();
t.readMyFile();
}
voidreadMyFile(){
Stringrecord=null;
intrecCount=0;
try{
FileReaderfr=newFileReader("mydata.txt");
BufferedReaderbr=newBufferedReader(fr);
record=newString();
while((record=br.readLine())!=null){
recCount++;
System.out.println(recCount+":"+record);
}
br.close();
fr.close();
}catch(IOExceptione){
System.out.println("Uhoh,gotanIOExceptionerror!");
e.printStackTrace();
}
}
}
Example4:
//FileWriteTest.java
//UserFileWriterinJDK1.1towriterafile
importjava.io.*;
classFileWriteTest{
publicstaticvoidmain(String[]args){
FileWriteTestt=newFileWriteTest();
t.WriteMyFile();
}
voidWriteMyFile(){
try{
FileWriterfw=newFileWriter("mydata.txt");
PrintWriterout=newPrintWriter(fw);
out.print(“hi,thiswillbewirteintothefile!”);
out.close();
fw.close();
}catch(IOExceptione){
System.out.println("Uhoh,gotanIOExceptionerror!");
e.printStackTrace();
}
}
}
为什么外国人还要写那些框架进行代码封装,他们不就是为了别人使用时可以更简单么!如果要达到一个企业级项目的不用框架是很难的。小一些的项目还行,大的光是MVC模式的设计的编码量就够大的了。还有性能方面,单轮windows,这个工具是微软写的,。 |
|