Java流系列(三):数据流、缓存流

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/androidzf/article/details/87878914

一、数据流

注意:使用data输出流写出数据后,在使用Data输入流读取时一定要保证读取的顺序和写出的顺序一致,否则数据出现错乱。

(一)、使用数据输入流完成数据的读取操作

1.声明数据输入流对象

DataInputStream dataInputStream=null;

2.实例化数据输入流对象

dataInputStream=new DataInputStream(new FileInputStream(path));

3.完成数据的读取操作

byte b=dataInputStream.readByte();
short s=dataInputStream.readShort();
int i=dataInputStream.readInt();
long l=dataInputStream.readLong();
float f=dataInputStream.readFloat();
double d=dataInputStream.readDouble();
char ch=dataInputStream.readChar();
boolean bool=dataInputStream.readBoolean();
String content=dataInputStream.readUTF();
System.out.println("b="+b+",s="+s+",i="+i+",l="+l+",float="+f+",double="+d+",ch="+ch+",bool="+bool+",content="+content);

(二)、使用数据输出流完成对Java八大基本数据类型及其String数据类型的写出功能.

1.声明数据输出流对象

DataOutputStream dataOutputStream=null;

2.实例化数据输出流对象

dataOutputStream=new DataOutputStream(new FileOutputStream(path));

3.将java八大基本数据类型及其String数据类型写出到指定的文件中

dataOutputStream.writeByte(5);
dataOutputStream.writeShort(10);
dataOutputStream.writeInt(15);
dataOutputStream.writeLong(20);
dataOutputStream.writeFloat(25.0f);
dataOutputStream.writeDouble(30.5d);
dataOutputStream.writeChar('a');
dataOutputStream.writeBoolean(false);
dataOutputStream.writeUTF("垂死病中惊坐起,今天还有学Java!");

二、字节缓存流

(一)、使用缓存输入流对象完成对指定文件的读取操作

1.声明缓冲输入流对象

BufferedInputStream bufferedInputStream=null;

2.实例化缓存输入流对象

bufferedInputStream=new BufferedInputStream(new FileInputStream(path));

3.读取数据

byte[] buffer=new byte[10];
int len=0;
while((len=bufferedInputStream.read(buffer))!=-1){
System.out.println(new String(buffer,0,len));
}

4、关闭缓存输入流对象

bufferedInputStream.close();
//将缓存输入流对象垃圾化
bufferedInputStream=null;

(二)、使用缓存输出流对象完成对指定路径中文件的写入操作

1、声明缓冲输出流对象

BufferedOutputStream bufferedOutputStream=null;

2.实例化缓存输出流对象

bufferedOutputStream=new BufferedOutputStream(new FileOutputStream(path));

3.执行写出操作

bufferedOutputStream.write("众里寻他千百度,蓦然回首,那人正在低头学Java".getBytes());
//强制刷新缓冲区
bufferedOutputStream.flush();

4、关闭缓存输出流对象

bufferedOutputStream.close();
//将缓存输出流对象垃圾化
bufferedOutputStream=null;

三、字符缓存流

  • BufferedReader常用的方法: String readLine():一次从输入流中读取一行数据
  • BufferedWriter常用的方法: void newLine():向输出流对象中写出换行符

(一)、使用缓冲输入流对象完成对指定文件的读取操作

1、声明缓冲输入流对象

BufferedReader bufferedReader=null;

2、实例化缓冲输入流对象

bufferedReader=new BufferedReader(new FileReader(path));
String line=null;

3.执行读取操作

bufferedReader.readLine()如果返回值为null表示读取完毕
while((line=bufferedReader.readLine())!=null){
System.out.println(line);
}

4、关闭缓冲输入流对象

bufferedReader.close();
//将缓冲输入流对象垃圾化
bufferedReader=null;

(二)、使用缓存输出流对象完成对指定文件的数据写入功能

1.声明缓冲输出流对象

BufferedWriter bufferedWriter=null;

2.实例化缓冲输出流对象

bufferedWriter=new BufferedWriter(new FileWriter(path));

3.完成写出操作

bufferedWriter.write("人生自古谁无死,来生再来学Java!");
bufferedWriter.newLine();//写出一个换行符,在window中写出\r\n,在Unix中写出\n
bufferedWriter.write("春眠不觉晓,处处学Java!");
bufferedWriter.newLine();
//刷新缓冲区
bufferedWriter.flush();

4、关闭缓存输出流对象

bufferedWriter.close();
//将缓存输出流对象垃圾化
bufferedWriter=null;

四、 完成文本文件的复制操作

将源文件中的数据读取出来写出到目标文件中完成数据的复制

1、声明字符缓冲输入、输出流

BufferedReader bufferedReader=null;
BufferedWriter bufferedWriter=null;

2.实例化缓冲输入流、输出流对象并指定要操作的文件

bufferedReader=new BufferedReader(new FileReader(src));
bufferedWriter=new BufferedWriter(new FileWriter(dest));

3、读取指定文件中的数据,并向指定文件中写入

String line=null;
while((line=bufferedReader.readLine())!=null){
bufferedWriter.write(line);
bufferedWriter.newLine();
}
//刷新缓冲区
bufferedWriter.flush();

4、关闭输入流对象、输出流对象

bufferedReader.close();
//将输入流对象垃圾化
bufferedReader=null;

bufferedWriter.close();
//将输出流对象垃圾化
bufferedWriter=null;

猜你喜欢

转载自blog.csdn.net/androidzf/article/details/87878914