Java的流
Java中的流主要是用来读写文件的。只要明确你是读文件还是写文件就可以确定使用哪种流了。读:read 写:writer
1、读文件:filereader这个类,顾名思义就知道是读文件了。
2、写文件:filewriter这个类,那么就是写文件了。
对于inputstream和outputstream怎么使用。我们也要确定是读文件还是写文件,我们可以像别人教的那样”读进来,写出去“的记忆。
而我个人区分的话并轻易使用的话,不是这个样的。下面是个人在使用时想的问题。
1、我这次做的操作是写文件还是读文件?(也有可能是读写都用到,但是不影响我的思考)
2、我使用的是字符流还是使用字节流。字符流功能大,但是在读文本的时候使用就好,其他的都使用字节流。这样我就可以知道使用哪种流了
就上面两个步骤,我就确定了使用那些流了。
想要知道怎么读写。还要知道相应的流中的,read和writer方法传参情况。
简介Java流:
字符流和字节流的主要区别:
1.字节流读取的时候,读到一个字节就返回一个字节; 字符流使用了字节流读到一个或多个字节(中文对应的字节数是两个,在UTF-8码表中是3个字节)时。先去查指定的编码表,将查到的字符返回。
2.字节流可以处理所有类型数据,如:图片,MP3,AVI视频文件,而字符流只能处理字符数据。只要是处理纯文本数据,就要优先考虑使用字符流,除此之外都用字节流。
(1)
1) FileReader 文件字符流:读
2) FileWriter 文件字符流:写
3) FileInputStream 数据字节流::读
4) FileOutputStream 文件字节流:写
(2)缓冲流:可以一次读一行。缓存作用
1) bufferReader 缓冲字符流:读
2) bufferWriter 缓存字符流:写
3) bufferInputStream 缓存字节流:读
4) bufferOutputStream 缓存字节流:写
(3)转换流:完成字符流和字节流的转换
1)InputStreamReader(InputStream); //通过构造函数初始化,使用的是本系统默认的编码表GBK。
2) InputStreamWriter(InputStream,String charSet); //通过该构造函数初始化,可以指定编码表。
3) OutputStreamWriter(OutputStream); //通过该构造函数初始化,使用的是本系统默认的编码表GBK。
4) OutputStreamwriter(OutputStream,String charSet); //通过该构造函数初始化,可以指定编码表。
(4)数据流:读写基本数据类型
1)DataInputStreamReader(InputStream);
2) DataInputStreamWriter(OutputStream);
eg:
- int readInt();//一次读取四个字节,并将其转成int值
- writeInt(int);//一次写入四个字节,注意和write(int)不同,write(int)只将该整数的最低一个8位写入,剩余三个8为丢失
- hort readShort();
- writeShort(short);
- String readUTF();//按照utf-8修改版读取字符,注意,它只能读writeUTF()写入的字符数据。
- writeUTF(String);//按照utf-8修改版将字符数据进行存储,只能通过readUTF读取。
(5) 打印流(PrintStream/PrintWriter)
对于输出输入下了解:
1、对于电脑。输出输入还可以是值输出设备和输入设备。如果是输入设备传数据到电脑,如键盘。就使用inputstream,如果是输出,如显示出来,就使用output
2、对于忘了,传出去就使用output,传进来就是用input
总之,确定是读文件还是写文件就行了。
buffer:即缓存的,可以一行或一块读取,所以速度比较快。
备注:参考https://blog.csdn.net/chendi1992/article/details/77802260。只做个人笔记参考,不做商业使用。如有雷同,请谅解。
Java的流的更多相关文章
- Java:IO流与文件基础
Java:IO流与文件基础 说明: 本章内容将会持续更新,大家可以关注一下并给我提供建议,谢谢啦. 走进流 什么是流 流:从源到目的地的字节的有序序列. 在Java中,可以从其中读取一个字节序列的对象 ...
- java IO流详解
流的概念和作用 学习Java IO,不得不提到的就是JavaIO流. 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ...
- Java IO流学习总结
Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ...
- 揭开Java IO流中的flush()的神秘面纱
大家在使用Java IO流中OutputStream.PrintWriter --时,会经常用到它的flush()方法. 与在网络硬件中缓存一样,流还可以在软件中得到缓存,即直接在Java代码中缓存. ...
- java io流 对文件夹的操作
java io流 对文件夹的操作 检查文件夹是否存在 显示文件夹下面的文件 ....更多方法参考 http://www.cnblogs.com/phpyangbo/p/5965781.html ,与文 ...
- Java IO流题库
一. 填空题 Java IO流可以分为 节点流 和处理流两大类,其中前者处于IO操作的第一线,所有操作必须通过他们进行. 输入流的唯一目的是提供通往数据的通道,程序可以通过这个通道读取数 ...
- Java IO流总结
Java IO流分类以及主要使用方式如下: IO流 |--字节流 |--字节输入流 InputStream: int read();//一次读取一个字节 int read(byte[] bys);// ...
- java io流 运行错误时,保存异常到文件里面
java io流 运行错误时,保存异常到文件里面 下面这个实例,运行后,输入数字,为正确,如果输入字符串,则报错,保存错误信息 //运行错误时,保存异常到文件里面 //下面这个实例,运行后,输入数字, ...
- java io流 创建文件、写入数据、设置输出位置
java io流 创建文件 写入数据 改变system.out.print的输出位置 //创建文件 //写入数据 //改变system.out.print的输出位置 import java.io.*; ...
- java io流 数据流传输
java io流 数据流传输 把这段当公式用就可以了 //数据流传输 import java.io.*; public class Index{ public static void main(Str ...
随机推荐
- 聚焦AI实践,2019 A2M峰会将在上海举行!
18年,BERT重磅发布,刷新了很多NLP的任务的最好性能:KENSHO等智能化应用的成功应用,让知识图谱在证券行业的建设思路和应用实践成为业内较为关注的问题:强化学习也在与人类的对战游戏中独领风骚: ...
- Python Learning - Three
1. Set Set is a collection which is unordered and unindexed. No duplicate members In Python sets ar ...
- Jmeter-----图形扩展监控
Jmeter----图形扩展监控 监听器中插件安装成功如下图: 安装步骤: 1. 下载JMeterPlugins-Extras与JMeterPlugins-Standard,解压缩后在他们各自的\l ...
- django创建命令及配置
创建项目django-admin startproject XXX(项目名字)运行项目 python manage.py runserver创建子应用python manage.py startapp ...
- linux上查询网卡型号
- linux /proc/sys/vm/中各个文件含义
1) /proc/sys/vm/block_dump该文件表示是否打开Block Debug模式,用于记录所有的读写及Dirty Block写回动作. 缺省设置:0,禁用Block Debu ...
- ES6的Proxy和Reflect
Proxy 有一个原始的数据对象,通过代理出来一个新的对象,用户操作的是这个新的对象 { let obj ={ time:'2018-01-01', name:'lx' , _r:123 } let ...
- Custom Window
public class CustomWnd : System.Windows.Window { static CustomWnd() { DefaultStyleKeyProperty.Overri ...
- instrument 之 core animation
1.Color Blended Layers 图层混合 需要消耗一定的GPU资源,避免设置alpha小于1,省去不必要的运算 2.Color Hits Green and Misses Red 光栅化 ...
- mysql--实现oracle的row_number() over功能
有时候我们想要得到每个分组的前几条记录,这个时候oracle中row_number函数使用非常方便,但可惜mysql没有.网上搜了些实现方法. 表flow_task有phaseno(序列号),obje ...