Java语言深入文件和流(4)
文章作者 100test 发表时间 2007:03:14 16:30:54
来源 100Test.Com百考试题网
import java.io.*.
public class BufferedReaderTest{
public static void main(String args[]){
BufferedReader br=null.
try{
br=new BufferedReader(
new InputStreamReader(
new FileInputStream("bufferedwriter.txt"))).
System.out.println(br.readLine()).
}catch(Exception e){
e.printStackTrace().
}finally{
if(br!=null)
try{
br.close().
}catch(Exception e){
e.printStackTrace().
}
}
}
}
10.随机存取文件 RandomAccessFile
可同时完成读写操作
支持随机文件操作的方法:
readXXX()/writeXXX()
seek() 将指针调到所需位置
getFilePointer() 返回指针当前位置
length() 返回文件长度
例子:把若干个32位的整数写到一个名为 “temp.txt”的文件中,然后利用seek方法,以相反的顺序再读取这些数据
import java.io.*.
public class RandomFile{
public static void main(String args[]){
RandomAccessFile raf=null.
int data[]={12,31,56,23,27,1,43,65,4,99}.
try{
raf=new RandomAccessFile("temp.txt","rw").
for(int i=0.iraf.writeInt(data).
for(int i=data.length-1.i>=0.i--){
raf.seek(i*4).
System.out.println(raf.readInt()).
}
}catch(Exception e){
e.getMessage().
}finally{
if(raf!=null)
try{
raf.close().
}catch(Exception e){
e.getMessage().
}
}
}
}
11.小结
这部分的难点就是类比较复杂,尤其是每个类的构造方式,我认为记住下面这个图比记类的继承关系更好些
a. 字节流:
InputStream
|-- FileInputStream (基本文件流)
|-- BufferedInputStream
|-- DataInputStream
|-- ObjectInputStream
OutputStream 同上图
BufferedInputStream DataInputStream ObjectInputStream 只是在 FileInputStream 上增添了相应的功能,构造时先构造FileInputStream
b. 字符流:
Reader
|-- InputStreamReader (byte->char 桥梁)
|-- BufferedReader (常用)
Writer
|-- OutputStreamWriter (char->byte 桥梁)
|-- BufferedWriter
|-- PrintWriter (常用)
c. 随机存取文件 RandomAccessFile