IO 流的操作基本规律
- 想要知道开发时,使用哪个流对象, 只要通过四个明确即可.
- 明确源和目的(数据汇)
- 源: InputStream 或 Reader
- 目的: OutPutStream 或 Writer
- 明确数据是否是纯文本数据
- 源:
- 是纯文本: Reader
- 不是纯文本: InputStream
- 目的:
- 是纯文本: Writer
- 不是纯文本: OutputStream
- 到这里, 就可以明确需求中具体要使用哪个体系.
- 源:
- 明确具体的设备, 即要明确使用哪一个对象
- 源设备:
- 硬盘: File
- 键盘: System.in
- 内存: 数组
- 网络: Socket 流
- 目的设备:
- 硬盘: File
- 键盘: System.out
- 内存: 数组
- 网络: Socket 流
- 源设备:
- 是否需要额外的功能
- 需要高效(缓冲区), 就加上 buffer
- 需要转换, 就将字节流转换为字符流
// 示例: 将一个中文字符串数据按照指定的编码表写入到一个文本文件中./* * 思路:* 1. 目的: OutputStream, Writer* 2. 是纯文本数据: Writer* 3. 设备: 硬盘, File* FileWriter fw = new FileWriter("a.txt");* fw.write("你好");* fw.close();* 注意:* 既然需求中已经明确了指定编码表的动作, 那就不可以使用 FileWriter, 因为 FileWriter 内部* 使用的是默认的本地编码表.* 因此,只能使用其父类, OutputStreamWriter, 转换流* OutputStreamWriter 的构造方法中必须带有一个字节输出流对象, 既然是操作文件,* 那么该对象应该是 FileOutputStream.* * OutputStreamWriter osw = * new OutputStreamWriter(new FileOutputStream("a.txt"), charsetName(编码表));* osw.write("你好");* osw.close();*/
- 什么时候使用转换流呢?
- 源或者目的对应的设备是字节流, 但是操作的却是文本数据, 可以使用转换流作为桥梁
提高对文本操作的便捷 - 一旦操作文本涉及到具体指定的编码表时, 必须使用转换流.
- 源或者目的对应的设备是字节流, 但是操作的却是文本数据, 可以使用转换流作为桥梁
参考资料
- JavaSE 基础视频(毕向东)
- JDK 1.6 中文文档
转载于:https://www.cnblogs.com/linkworld/p/7514008.html
IO 流的操作基本规律相关推荐
- Java 关于文件的复制io流的操作
关于文件备份的三种方式解答 需要的jar包 jcifs jcifs 1.3.17 commons-net commons-net 3.3 commons-io commons-io 2.5 引入jar ...
- Java io流的使用操作
了解io流 什么是io流 io流即输入输出流 通过对象向我的文件里放入取出 创建文件对象 放入绝对路径C:\a.txt 创建时需要购入后缀如txt ppt avi 对象名.delete()删除文件 对 ...
- Java基础之IO流(二)
IO流(二) 标准输入输出流 System类中的字段:in out,它们代表了系统标准的输入和输出设备 System.in标准输入流,默认设备,键盘 System.out标准输出流,默认设备,屏幕 获 ...
- java中io流实现哪个接口_第55节:Java当中的IO流-时间api(下)-上
标题图 Java当中的IO流(下)-上日期和时间日期类:java.util.Date 系统时间:long time = System.currentTimeMillis();public class ...
- java高级之Io流
1.1,什么是io流? 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作 ...
- Java当中的IO流-时间api(下)-上
Java当中的IO流(下)-上 日期和时间 日期类:java.util.Date 系统时间: long time = System.currentTimeMillis(); public class ...
- IO流 输入流、输出流、字节流、字符流、转换流、及Properties类
IO流 1.IO概述 生活中,你肯定经历过这样的场景.当你编辑一个文本文件,忘记了ctrl+s ,可能文件就白编了.当你电脑上插入一个U盘,可以把一个视频,拷贝到你的电脑硬盘里.那么数据都是在哪些设备 ...
- Java实现图书借阅管理系统(IO流存储数据,附源码)
目录 前言 一.项目概述 1.项目功能结构图 2.项目功能说明 3.项目其他说明 二.开发过程中需要注意的问题 1.开发顺序及思路 2.IO流读写 3.数据共享 4.业务逻辑问题 三.源码链接 前言 ...
- 一篇文章了解 Java IO 流
一:IO 流的概述 1. 什么是 IO 流? 存储和读取数据的解决方法 I:input O:output 流:像水流一样传输数据 2. IO 流的作用? 用于读写数据(本地文件,网络) 3. IO 流 ...
最新文章
- unity3d与eclipse协同工作环境
- 超简单的Oracle 数据库安装教程
- sklearn自学指南(part45)--新颖性和离群值检测概述
- java程序表头出不来_JAVA SWING 表头不显示问题
- 认识死锁之生产者与消费者
- 修改了xml要不要重新起服务器,关于设置:Eclipse每次运行项目时都会修改server.xml(运行-在服务器上运行)...
- virtual box
- python中二维数组如何查找_【剑指offer】---二维数组中的查找(Python)
- 使用网络调试助手 MQTT接入阿里云物联网平台,逐字节讲解,适用单片机/ESP8266接入阿里云
- 安装zabbix4.0
- McBSP初始化以及和EDMA的结合使用(C64X DSP)
- 12306火车票查询--python
- [WebGL入门]二十一,从平行光源发出的光
- android开发屏幕投射到电视6,用电视吃鸡!将手机上的内容投射到电视机的屏幕上!...
- 【题解】P3387 【模板】缩点
- arduino 步进电机驱动库_Arduino驱动 步进电机
- 代码角度理解SGX的认证机制(一):本地认证
- samba 服务器的配置基础
- java中的<<符号是什么意思
- 【小知识】java中的this.name=name是什么意思啊??this 有什么用啊,再哪出现?
热门文章
- 【C语言】不能使用	while(fgetc(fp)!=EOF)进行文件复制
- 清华图书馆机器人小图_机器人“小图”带你逛“国家图书馆110周年公共数字文化展”...
- docker 管理工具_详解Docker可视化管理工具shipyard--部署教程及功能展示
- mysql 锁定表_MySQL表锁定
- 输出流_关于输出字符流你真的懂了吗?
- go post请求的响应数据渲染到html模板_干货你需要了解的六种渲染模式
- Java Web学习笔记08:分页技术
- 【BZOJ1568】【Tyvj3490】Blue Mary开公司 李超线段树
- 【BZOJ2588】Count on a tree,主席树维护链+ST表求LCA
- 湖北工程学院计算机宿舍,湖北工程学院宿舍条件,宿舍环境图片(10篇)