《Java程序设计任务式教程》课件 805 字节流(课件)_第1页
《Java程序设计任务式教程》课件 805 字节流(课件)_第2页
《Java程序设计任务式教程》课件 805 字节流(课件)_第3页
《Java程序设计任务式教程》课件 805 字节流(课件)_第4页
《Java程序设计任务式教程》课件 805 字节流(课件)_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

字节流《Java程序设计》字节流的定义和使用1字节输入流的定义和使用2字节输出流的定义和使用3本讲要讨论的问题目录CONCENT什么是面向对象?JAVA字节流是用于读写二进制数据的输入/输出流,它以字节为单位进行数据的读取和写入,可以读取和写入任意类型的文件,包括文本文件、图像文件、音频文件等,常见的文件操作有复制、移动、重命名等。什么是字节流?类的组成:InputStream(输入流/读取)字节流OutputStream(输出流/写入)FileInputStream(操作文件的输入)BufferedInputStream(通过内存缓冲提高流操作性能)FileOutputStream(操作文件的输出)BufferedOutputStream(通过内存缓冲提高流操作性能)使用步骤1.引入所需的类2.创建流对象3.读/写数据

4.关闭流使用字节流的一般步骤什么是面向对象?字节输入流是Java中用于逐字节读取数据的工具,常用的字节输入流类有BufferedInputStream、FileInputStream等。FileInputStream类用于从文件中读取字节数据;BufferedInputStream类则提供了缓冲功能,可以高效地读取字节数据。什么是字节输入流,如何使用?字节输入流的常用方法:方法功能描述intread()从输入流中读取一个字节的数据,并返回该字节的整数表示intread(byte[]b)读取最多b.length个字节的数据,将其存储到字节数组b中,并返回实际读取的字节数intread(byte[]b,intoff,intlen)读取最多len个字节的数据,将其存储到字节数组b中,从off位置开始存储,并返回实际读取的字节数intavailable()返回输入流中可读的字节数voidclose()关闭输入流使用步骤1.导入需要的包java.io.*2.创建输入流对象如FileInputStream3.读取数据使用read()

4.关闭流调用close()使用字节输入流的一般步骤FileInputStream

fis

=

new

FileInputStream(“E:/f.txt”)fis.read();//从文件中读取一个字节的数据,如返回-1表示已经到流的末尾,即文件已经读完fis.available();//输入流中可读的字节数fis.close();//关闭输入流使用“对象.函数()”进行操作创建FileInputStream的步骤:FileInputStream

对象名=newFileInputStream(文件路径);语法

注意:如使用了try-with-resources语句,则自动关闭资源,无需手动调用close()方法。BufferedInputStream

bis

=

new

BufferedInputStream(new

FileInputStream(“E:/f.txt”))bis.read();//一次性读取较大块的数据存入缓冲区,后续的读取直接从缓冲区获取,减少系统调用次数bis.close();//关闭输入流使用“对象.函数()”进行操作使用缓冲区创建的步骤:BufferedInputStream

对象名

=

new

BufferedInputStream(new

FileInputStream(文件路径))语法

注意:如使用了try-with-resources语句,则自动关闭资源,无需手动调用close()方法。实例化

publicclassDemo8_7{ publicstaticvoidmain(String[]args){ System.out.println("—1.使用FileInputStream示例"); fileInputStreamDemo();//不使用缓冲区 System.out.println("\n—2.使用BufferedInputStream示例"); bufferedInputStream();//使用缓冲区 }}一、main()函数中的代码二、要读取的文件内容三、读取结果实例化一实例化

privatestaticvoidfileInputStreamDemo(){ StringfilePath="src/exception/file8_7.txt";//文件存放路径 try(FileInputStreamfis=newFileInputStream(filePath)){ intdata; while((data=fis.read())!=-1){//读取文件 System.out.print((char)data); } }catch(IOExceptione){ System.err.println("错误信息:"+e.getMessage()); } }一、fileInputStreamDemo()函数实现实例化二二、bufferedInputStream()函数实现privatestaticvoidbufferedInputStream(){ StringfilePath="src/exception/file8_7.txt";//文件存放路径 try(BufferedInputStreambis=newBufferedInputStream(newFileInputStream(filePath))){ intdata; while((data=bis.read())!=-1){ System.out.print((char)data); } }catch(IOExceptione){ System.err.println("错误信息:"+e.getMessage()); } }什么是面向对象?字节输出流是JavaI/O系统中的一种流,用于将数据以字节(8位二进制)的形式从内存输出到外部目标,例如文件、网络、或者其他输出设备。它是数据输出的基础流,主要用于处理二进制数据(如图片、视频、音频)和文本数据。什么是字节输出流,如何使用?字节输出流的常用方法:方法功能描述voidwrite(byte[]b)字节数组b中的数据写入到输出流voidwrite(byte[]b,intoff,intlen)将字节数组b中从偏移量off开始的len个字节写入到输出流voidwrite(intb)将指定的字节写入输出流voidflush()刷新输出流,将缓冲区中的数据强制写出voidclose()关闭输出流,释放相关的资源使用步骤1.导入需要的包java.io.*2.创建输出流对象如FileOutputStream3.写入数据使用write()

4.关闭流调用close()使用字节输出流的一般步骤FileOutputStream

fos

=

new

FileOutputStream(“/f.txt”)fos.write(data);//将data字节数据写入流fos.close();//关闭输出流使用“对象.函数()”进行操作创建FileOutputStream的步骤:FileOutputStream

对象名=newFileOutputStream(文件路径);语法

注意:如使用了try-with-resources语句,则自动关闭资源,无需手动调用close()方法。BufferedOutputStreambos=newBufferedOutputStream(newFileOutputStream(“f.txt”))bos.write(data);//写入缓冲区bos.flush();//刷新缓冲区fos.close();//关闭输出流使用“对象.函数()”进行操作使用缓冲区创建的步骤:BufferedOutputStream对象名=newBufferedOutputStream(newFileOutputStream(文件路径))语法

注意:如使用了try-with-resources语句,则自动关闭资源,无需手动调用close()方法。实例化

publicclassDemo8_8{ publicstaticvoidmain(String[]args){ System.out.println("——1.BufferedOutputStream示例"); bufferedOutputStream();//调用写入文件的方法 System.out.println("——2.图片复制示例"); copyStream();//调用复制图片的方法,使用字节输入输出流 }}一、main()函数中的代码二、要读取的文件内容三、写入结果实例化一实例化

privatestaticvoidbufferedOutputStream(){ StringwData="我和我的祖国\r\n未来可期";//定入文件的内容 byte[]content=wData.getBytes();//将文本内容转换为字节数组 try(FileOutputStreamfos=newFileOutputStream("src/exception/f3.txt"); BufferedOutputStreambos=newBufferedOutputStream(fos);) { bos.write(content);//将字节数组写入缓冲流 bos.flush(); System.out.println(wData+"-写入成功!"); }catch(Exceptione){ e.printStackTrace(); }}一、bufferedOutputStream()函数实现实例化二二、copyStream()函数实现privatestaticvoidcopyStream(){ StringsourceImg="src/exception/myimg.png";//源图片路径,已存在 StringtargetImg="src/exception/target.jpg";//目标图片路径,运行程序后生成 try(FileInputStreamfileInputStream=newFileInputStream(sourceImg); FileOutputStreamfileOutputStream=newFileOutputStream(targetImg)) { byte[]buffer=newbyte[1024]; intbytesRead; w

温馨提示

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

评论

0/150

提交评论