|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
还有就是总有人问我到底该学习什么语言,什么语言有前途,那么我的回答是不论是C,C++,java,.net,ruby,asp或是其他语言都可以学,编程的关键不是语言,而是思想。对照Java中对文件的读写操纵之对照
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();
}
}
}
大型的应用一般不会用这些框架(因为性能考虑);开发人员根据需要选择用一些框架,也可以不选用框架;不用框架并不代表要自己写框架;修改框架的可能性更小。 |
|