Java详细讲解文件的读写操作方法_第1页
Java详细讲解文件的读写操作方法_第2页
Java详细讲解文件的读写操作方法_第3页
Java详细讲解文件的读写操作方法_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第Java详细讲解文件的读写操作方法目录java的IO字节流InputStream的常用方法OutputStream的常用方法字节流读写文件如何将数据写入到文件中

java的IO

Java程序允许通过流的方式与输入输出设备进行数据传输。Java中的流都在java.io包中,称为IO(输入输出)流。IO流按照操作数据的不同,可以分为字节流和字符流,按照数据传输方向的不同,又可以分为输入流和输出流,程序从输入流中读取数据,向输出流中写入数据,在IO包中,字节流的输入输出分别用java.InputStream和java.io.OutputStream表示,字符流的输入输出分别用java.io.Reader和java.io.Writer表示。

字节流

在计算机中,无论是文本,图片,音频还是视频,所有的文件都是以二进制的方式存在的,字节流是程序中最常用的流,根据数据的传输方向分为字节输入流和字节输出流,在JDK中,提供了两个抽象类InputStream和OutputStream,他们是字节流的顶级父类,所有的字节输入流都继承OutputStream.

InputStream的常用方法

intread()//从输入流中读取一个八位的字节,并把它转换为0~255之间的整数,并返回这一整数

intread(byte[]b)//从输入流读取若干个字节,把它们保存到参数b指定的字节数组中,返回的整数表四读取字节的数目

intread(byte[]b,intoff,intlen)//从输入流读取若干字节,把它们保存到参数b指定的字节数组中,off指定字节数组开始保存数据的起始下标,len表示读取的字节数目

voidclose()//关闭此输入流并释放与该流关联的所有系统资源

OutputStream的常用方法

voidwrite(intb)//向输出流写入一个字节

voidwrite(byte[]b)//把参数b指定的字节数组的所有字节写到输出流

voidwrite(byte[]b,intoff,intlen)//将指定的byte数组中从偏移量off开始的len个字节写入输出流

voidflush()//刷新此输出流并强制手写所有的缓冲的输出字节

voidclose()//关闭此输出流并释放与此流相关的所有系统资源

flush()方法用来将当前输出流缓冲区(通常是字节数组中)的数据强制写入目标设备,此过程称为刷新。InputStream和OutputStream这两个类虽然提供了一些读写数据有关的方法,但是这两个类都是抽象类,不能被实例化。

字节流读写文件

由于计算机中的数据基本都保存在硬盘的文件中,在操作文件时,从文件中读取数据并将数据写入文件,FileInputStream和FileOutputStream是进行读写操作的两个类。由于从文件中读取数据是重复的操作,因此需要通过循环语句来实现数据的持续读取。

packageIO;

importjava.io.FileInputStream;

publicclassLi01{

publicstaticvoidmain(String[]args)throwsException{

FileInputStreamin=newFileInputStream("test.txt");

intb=0;

while(true){

b=in.read();

if(b==-1){

break;

System.out.print(b+"");

in.close();

}

演示结果

之所以输出数字是因为硬盘上面的文件都是以字节的形式存在的,在进行读取文件数据时,必须保证文件在相应目录存在并且是可读的。

如何将数据写入到文件中

packageIO;

importjava.io.FileOutputStream;

importjava.io.OutputStream;

importjava.nio.charset.StandardCharsets;

publicclassLi02{

publicstaticvoidmain(String[]args)throwsException{

OutputStreamout=newFileOutputStream("example1.txt");

Stringstr="好好学习,天天向上!";

byte[]b=str.getBytes(StandardCharsets.UTF_8);

for(inti=0;ib.length;i++){

out.write(b[i]);

out.close();

}

通过FileOutputStream写数据时,自动创建了文件example1.txt,并将数据写入文件,如果向已存在文件中写入内容,首先该文件的内容会被清空,然后再写入新的数据,如果想要在已存在的文件后追加内容,可以在文件名后面加个boolean值并设置为true。

packageIO;

importjava.io.FileOutputStream;

importjava.io.OutputStream;

importjava.nio.charset.StandardCharsets;

publicclassLi02{

publicstaticvoidmain(String[]args)throwsException{

OutputStreamout=newFileOutputStream("example1.txt",true);

Stringstr="好

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论