1(2)IO流---字节流
一.分类
- 字节流(不适用于文本)
- InputStream
- OutputStream
- 字符流
- Reader
- Writer
二.字节流
1.概述
InputStream
字节输入流,是被读的,抽象类,不能创建对象
FileInputStream:针对文件数据操作
DataInputSream:转换流,可传基本数据类型
BufferedInputStream:缓冲流,常用
ObjectInputStream:对象流
OutputStream
字节输出流,是被写的,抽象类,不能创建对象
PrintStream:单向的输出流
2.字节流----文件流
文件流FileInputStream,字节流不适合文本(原因是10个字节为单位读),但适合图片
//1.创建对象
FileInputStream fis = new FileInputStream("src/test.txt"); //2.读文件,一个字节一个字节读
int n=fis.read();
System.out.println((byte)n);
n = fis.read();
System.out.println((byte)n);
n = fis.read();
System.out.println((byte)n); //3.读文件,一次读取多个字节
byte []by=new byte[1024];
int m=fis.read(by);//将读取的字节内容保存在buf数组 返回的是读取的字节数
System.out.println(m); //4.是流,所以再次读取时读不到数据,返回-1
m=fis.read(by);
System.out.println(m); //5.完整读取一个文本
byte []buf=new byte[10];//10个字节为单位读取。
int len=-1;
while((len=fis.read(buf))!=-1){
String result =new String(buf,0,len);
System.out.print(result);
}
fis.close();
文件流的小练习:把图片复制到桌面
//1.找到源和目标位置
FileInputStream fis=new FileInputStream("图片原目录");
FileOutputStream fos=new FileOutputStream("桌面目录"); //2.读取文件媒介
byte []buf=new byte[1024];
int len=-1; //3.读取并写入文件
while((len=fis.read(buf)) != -1) {
fos.write(buf, 0, len);
} //4.写入后重要的步骤
fos.flush();
fos.close();
fis.close();
文件流的小练习2:写入东西到txt文件
//文件字节输出流,创建对象并写入txt文档
//1.创建对象,追加或者覆盖
FileOutputStream fos=new FileOutStream("src/test.txt",true);
FileOutputStream fos=new FileOutStream("src/test.txt"); //2.写入
fos.write(97);//写入a
fos.write("你好".getByte());//将字符串转化为字节数组 //3.收尾
fos.flush();
fos.close();
3.字节流-----缓冲流
具有缓冲区,减少对硬盘的读写次数,在这里首先接触到装饰者模式,以后还会遇到更多
- 写入缓冲字节流
//1.创建缓冲输出流 装饰者模式 设计模式
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("src/buffer.txt")); bos.write("你好,我这里使用了缓冲流进行写入内容!!".getBytes());
bos.flush();
bos.close();
- 读取缓冲字节流
//2.创建缓冲输入流
BufferedInputStream bis = new BufferedInputStream(new FileInputStream("src/buffer.txt"));
byte[] buf = new byte[1024];
int len = -1;
while((len=bis.read(buf)) != -1 ) {
System.out.print(new String(buf, 0, len));
}
bis.close();
1(2)IO流---字节流的更多相关文章
- JAVA之IO流(字节流)
输入和输出 JAVA的流分为输入流和输出流两部分, 输入流:InputStream或者Reader:从文件中读到程序中: 输出流:OutputStream或者Writer:从程序中输出到文件中: Re ...
- IO流(字节流,字符流,缓冲流)
一:IO流的分类(组织架构) 根据处理数据类型的不同分为:字节流和字符流 根据数据流向不同分为:输入流和输出流 这么庞大的体系里面,常用的就那么几个,我们把它们抽取出来,如下图: 二:字符字节 ...
- Java之IO流(字节流,字符流)
IO流和Properties IO流 IO流是指计算机与外部世界或者一个程序与计算机的其余部分的之间的接口.它对于任何计算机系统都非常关键, 因而所有 I/O 的主体实际上是内置在操作系统中的.单独的 ...
- Java IO流-字节流
2017-11-05 17:48:17 Java中的IO流按数据类型分类分为两种,一是字节流,二是字符流.字符流的出现是为了简化文本数据的读入和写出操作. 如果操作的文件是文本文件,那么使用字符流会大 ...
- Java—IO流 字节流
IO流(输入流.输出流),又分为字节流.字符流. 流是磁盘或其它外围设备中存储的数据的源点或终点. 输入流:程序从输入流读取数据源.数据源包括外界(键盘.文件.网络…),即是将数据源读入到程序的通信通 ...
- IO流——字节流、字符流
在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成. 流的分类 ① 流按其流向分为“输入流”和“输出 ...
- JAVA基础——IO流字节流
在Java中把不同的输入输出源(键盘.文件.网路连接)抽象表述为“流”. 1.输入流.输出流 .字节输入流通过FileInputStream和来操作 字节输出流通过FileOutputStream来操 ...
- IO流——字节流
文件输出流 FileOutputStream:文件输出流是用于将数据写入 File,每次运行,都会覆盖之前文件中的数据 FileOutputStream(File file):创建一个向指定 File ...
- java IO流——字节流
字节流主要操作byte类型数据,以byte数组为准,主要操作类有InputStream(字节输入流).OutputSteam(字节输出流)由于IputStream和OutputStream都是抽象类, ...
随机推荐
- webform的代码设计文件莫名出错的解决
不知道怎么回事,建立webform工程时,编译,出错,提示代码设计文件(自动生成的文件代码,不能修改)出错,提示有的对象正在使用,于是删除里面多余的对象标记,还是没用,又自动生成了. 解决办法: 1. ...
- 使用Vue-cli搭建多页面应用时对项目结构和配置的调整
前提:在这里使用的是webpack模板进行搭建 第一步.安装Vue-cli并且进行初始化 首先打开git,在里面使用npm全局安装Vue-cli,并且进行初始化 npm i vue-cli -g 然后 ...
- Django数据同步过程中遇到的问题:
1.raise ImproperlyConfigured('mysqlclient 1.3.13 or newer is required; you have %s.' % Database.__ve ...
- K2百家讲坛 | 越秀地产:K2为房企数字化转型带来更多可能
随着数字化经济时代的到来,房地产行业逐渐形成了新的竞争和市场格局,房企要在此背景下实现稳步发展,需要由原本的粗放式管理逐渐向集团性管理.精细化管控转变,这对房企的经营发展战略和业务管理方式都提出了不小 ...
- C#连接sql server windows 和 sqlserver 身份验证的两种连接字符串
//sql server 身份验证 连接字符串 private string ConnstrSqlServer = "server=服务器名称;uid=登录名称;pwd=登录密码;datab ...
- websocket+rabbitMQ
拉取镜像:docker run -d --hostname my-rabbit --name some-rabbit -p 5672:5672 -p 15672:15672 -p 61613:616 ...
- day13笔记
1:StringBuffer(掌握) (1)用字符串做拼接,比较耗时并且也耗内存,而这种拼接操作又是比较常见的,为了解决这个问题,Java就提供了 一个字符串缓冲区类.StringBuffer供我们使 ...
- 一个C++右值引用的问题
暂时先不更新前一篇文章了,感觉那个文章要写好久.累死. 今天说一说C++右值引用的一个问题. 这个问题的发现也是很偶然的. 来一段毫无意义但是能证明问题的代码: std::string &&a ...
- 原生js实现下拉菜单
简单给两段代码: html和css部分: <style> .one li{ width:100px; height:30px; line-height:30px; background:u ...
- java Reference
相关讲解,参考: Java Reference 源码分析 Java Reference详解 Reference: // 名称说明下:Reference指代引用对象本身,Referent指代被引用对象 ...