仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1102|回复: 18
打印 上一主题 下一主题

[学习教程] JAVA编程:Java中对文件的读写操纵之对照

[复制链接]
跳转到指定楼层
楼主
发表于 2015-1-18 11:43:17 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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();
}
}

}


大型的应用一般不会用这些框架(因为性能考虑);开发人员根据需要选择用一些框架,也可以不选用框架;不用框架并不代表要自己写框架;修改框架的可能性更小。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-22 11:27

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表