java--字节流-(二)

举报
brucexiaogui 发表于 2021/12/29 23:34:53 2021/12/29
【摘要】 java--字节流-(二) 一、字节流   字节流主要是操作byte(字节)的类型数据:   字节输出流:OutputStream字节输入流:InputStream   二、OutputStream常用方法   void flush() throws IOExceptio...

java--字节流-(二)

一、字节流

 

  • 字节流主要是操作byte(字节)的类型数据:

 

  1. 字节输出流:OutputStream
  2. 字节输入流:InputStream

 

二、OutputStream常用方法

 

  • void flush() throws IOException:清空缓冲区
  • abstract void close() throws IOException:关闭输出流
  • void write(int c) throws IOException:将一个字节写到输出流中。
  • void write(byte[] b) throws IOException:将一个byte数组写出。
  • void write(byte[] b,int off,int len) throws IOException:将字节数组从off位置开始,长度为len的字节写入到输出流中。
  • 以其子类FileOutputStream来实例化OutputStream对象

 

 

  1. FileOutputStream(File/String file)  throws FileNotFoundException创建一个向指定 File 对象表示的文件中写入数据的文件输出流。 
  2. FileOutputStream(File/String file, boolean append)   throws FileNotFoundException创建一个向指定 File 对象表示的文件中写入数据的文件输出流 

 

OutputStream实例


  
  1. package io;
  2. import java.io.FileOutputStream;
  3. import java.io.IOException;
  4. import java.io.OutputStream;
  5. public class OutputStreamDemo {
  6. public static void main(String[] args) throws IOException {
  7. //1.找到流的目标
  8. String filename = "stream.txt";
  9. //2. 创建输出流的管道,并连接上目标l,os就是输出管道
  10. OutputStream os = new FileOutputStream(filename,true);
  11. //3. 输出操作
  12. os.write('\n');
  13. for (int i =65; i < 91; i++) {
  14. os.write(i);
  15. }
  16. String data = "cditcast";//程序提供的数据
  17. byte[] b= data.getBytes();//得到字节类型的数据
  18. os.write(b);
  19. os.write('\n');
  20. os.write(b,2,2);//得到 "cditcast"的 "it"
  21. //4. 关闭操作
  22. os.close();//字节流没有使用缓冲区,
  23. }
  24. }

 

三、InputStream常用方法

 

 

  • int available() throws IOException:文件大小
  • abstract void close() throws IOException:关闭流
  • int read() throws IOException:从输入流中读取单个字节,返回该字节。
  • int read(byte[] b) throws IOException:从输入流中读取b.length个字节存储在字节数组b中,返回实际读取的字节数。

 

 

  1. 直到read(byte[] b)方法返回-1表示输入流的结束。

 

 

  • 以其子类FileInputStream来实例化InputStream对象

 

 

 

  1. FileInputStream(File/String file) throws FileNotFoundException  创建一个向指定 File 对象表示的文件中写入数据的文件输出流。 

 

 

InputStream实例


  
  1. package io;
  2. import java.io.File;
  3. import java.io.FileInputStream;
  4. import java.io.IOException;
  5. import java.io.InputStream;
  6. public class InputStreamDemo {
  7. public static void main(String[] args) throws IOException {
  8. //1,找到 数据源
  9. File src = new File("day21.txt");
  10. //2. 创建输入流的管道,并和源连接上
  11. InputStream is = new FileInputStream(src);
  12. //3. 读取操作
  13. /*for (int i = 0; i < 100; i++) {
  14. System.out.println((char)is.read());
  15. }*/
  16. //存储读入数据的缓冲区
  17. byte[] buff = new byte[1024];//定义一个1024个字节的缓冲区
  18. int len = 0;//表示这一次,读了多个各字节, 若len == -1表示读完了
  19. while((len= is.read(buff)) != -1){
  20. //String(byte[] bytes, int offset, int length) 构造一个新的 String。
  21. //去缓冲区获取数据
  22. String data = new String(buff,0,len);
  23. System.out.println(data);
  24. System.out.println("========================================");
  25. }
  26. //4.关闭操作
  27. is.close();
  28. }
  29. }

 

文章来源: brucelong.blog.csdn.net,作者:Bruce小鬼,版权归原作者所有,如需转载,请联系作者。

原文链接:brucelong.blog.csdn.net/article/details/80048292

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。