Java之IO流用法总结
Java的IO流概述:
1.I/O是Input/Output的缩写,I/O技术是非常实用的技术,
用于处理设备之间的数据传输。如读/写文件,网络通讯等。
2.Java程序中,对于数据的输入/输出操作以“流(stream)” 的方式进行。
3.java.io包下提供了各种“流”类和接口,用以获取不同种类的数据,
并通过标准的方法输入或输出数据。
IO流的分类:
1.按操作数据单位不同分为:字节流(8 bit), 字符流(16 bit)。
2.按数据流的流向不同分为:输入流,输出流。
3.按流的角色的不同分为:节点流,处理流。

1.Java的IO流共涉及40多个类,实际上非常规则,都是从以上4个抽象基类派生的。
2.由这四个类派生出来的子类名称都是以其父类名作为子类名后缀。


节点流和处理流:
1.节点流:直接从数据源或目的地读写数据。
2.处理流:不直接连接到数据源或目的地,而是“连接”在已存在的流(节点流
或处理流)之上,通过对数据的处理为程序提供更为强大的读写功能。

InputStream和Reader:

1.程序中打开的文件I0资源不属于内存里的资源,垃圾回收机制无法回收该资源,
所以应该显式关闭文件10资源。
2.FileInputStream从文件系统中的某个文件中获得输入字节。FileInputStream
用于读取非文本数据之类的原始字节流。要读取字符流,需要使用FileReader。
InputStream概述:

Reader概述:

OutputStream和Writer:

OutputStream概述:

Writer概述:

节点流(或文件流)概述:
读取文件时:
1.建立一个流对象,将已存在的一个文件加载进流。
➢FileReader fr = new FileReader(new File("Test.t"));
2.创建一个临时存放数据的数组。
➢char[] ch = new char[1024];
3.调用流对象的读取方法将流中的数据读入到数组中。➢fr.read(ch);
4.关闭资源。➢fr.close();
写入文件时:
1.创建流对象,建立数据存放文件。
➢FileWriter fw = new FileWriter(new File("Test.tx"));
2.调用流对象的写入方法,将数据写入流。
➢fw.write("atguigu-songhongkang");
3.关闭流资源,并将流中的数据清空到文件中。➢fw.close();
节点流注意事项:
1.定义文件路径时,注意:可以用“/”或者“\"。
2.在写入一个文件时,如果使用构造器FileOutputStream(ile),则目录下有同名文件将被覆盖。
3.如果使用构造器FileOutputStream(ile,true),则目录下的同名文件不会被覆盖,
在文件内容末尾追加内容。
4.在读取文件时,必须保证该文件已存在,否则报异常。
5.字节流操作字节,比如: .mp3, .avi, .rmvb, mp4,jpg, .doc, .ppt
6.字符流操作字符,只能操作普通文本文件。最常见的文本文件: .txt, .java, .c, .cpp 等语言的源代码。
尤其注意.doc,ecel,ppt这些不是文本文件。
Java之IO流用法总结的更多相关文章
- 第15章-输入/输出 --- 理解Java的IO流
(一)理解Java的IO流 JAVA的IO流是实现输入/输出的基础,它可以方便地实现数据的输入/输出操作,在Java中把不同的输入/输出(键盘.文件.网络连接等)抽象表述为"流"( ...
- Java基础-IO流对象之压缩流(ZipOutputStream)与解压缩流(ZipInputStream)
Java基础-IO流对象之压缩流(ZipOutputStream)与解压缩流(ZipInputStream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 之前我已经分享过很多的J ...
- Java基础-IO流对象之随机访问文件(RandomAccessFile)
Java基础-IO流对象之随机访问文件(RandomAccessFile) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.RandomAccessFile简介 此类的实例支持对 ...
- Java基础-IO流对象之序列化(ObjectOutputStream)与反序列化(ObjectInputStream)
Java基础-IO流对象之序列化(ObjectOutputStream)与反序列化(ObjectInputStream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.对象的序 ...
- Java基础-IO流对象之File类
Java基础-IO流对象之File类 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.IO技术概述 回想之前写过的程序,数据都是在内存中,一旦程序运行结束,这些数据都没有了,等下 ...
- 一文看懂java的IO流
废话不多说,直接上代码 import com.fasterxml.jackson.databind.ObjectMapper; import java.io.*; import java.nio.ch ...
- Java 的 IO 流
接着上一篇的 “Java 的 File 类” 的随笔,在File类的基础上,我们就走进Java的IO流吧. 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在 ...
- java的IO流
java的IO流继承四大抽象类分别是字节流 inputStream outputStream与字符流 read write.怎么理解记忆很重要. 直接连接读写对象的是结点流,例如对文件读取字节类的名字 ...
- Java基础——IO流
今天刚刚看完java的io流操作,把主要的脉络看了一遍,不能保证以后使用时都能得心应手,但是最起码用到时知道有这么一个功能可以实现,下面对学习进行一下简单的总结: IO流主要用于硬板.内存.键盘等处理 ...
随机推荐
- 【C++竞赛 B】yyy的回文数组
时间限制:1s 内存限制:32MB 问题描述 回文串是一个正读和反读都一样的字符串,比如level或者noon就是回文串.回文数组也是如此,比如[100,200,100]或者[178,256,256, ...
- Laravel 中 validation 验证 返回中文提示 全局设置
<?php return [ /* |-------------------------------------------------------------------------- | V ...
- zoj 2954 Hanoi Tower
Hanoi Tower Time Limit: 2 Seconds Memory Limit: 65536 KB You all must know the puzzle named "Th ...
- mybatis plus3.1.0 热加载mapper
今天又开始写业务代码了,每次修改SQL都要重启服务,实在是浪费时间. 想起之前研究过的<mybatis plus3.1.0 热加载mapper>,一直没有成功,今天静下心来分析了问题,终于 ...
- js 制作分页
如图所示 在html中调用方法 getpage(7, 1, 1, 'URL') 1.page.js文件 代码 function getpage(count, countPage, pageIndex, ...
- UVA 11107 Life Forms——(多字符串的最长公共子序列,后缀数组+LCP)
题意: 输入n个序列,求出一个最大长度的字符串,使得它在超过一半的DNA序列中连续出现.如果有多解,按照字典序从小到大输出所有解. 分析:这道题的关键是将多个字符串连接成一个串,方法是用不同的分隔符把 ...
- Java语言中使用OpenMP
从去年年中,开始学习Java,主要是维护公司用Java编写的服务器软件.目前,该服务器软件遇到一个问题,在下载大文件时,如果同时下载的用户很多, 服务器软件工作会出现异常,有的用户无法下载.服务器硬件 ...
- WindowsDOS命令添加/创建/修改/删除服务
添加服务 sc <server> create [service name] [binPath= ] <option1> <option2>... 在注册表和服务数 ...
- eclipse中如何配置tomcat
1.打开eclipse上面的Windows选项,选择Preferences==>Server==>Runtime Environments==>Add 2.选择你电脑中安装的tomc ...
- ABP-多个DbContext实现事物更新
1.在ABP中其实多个DbContext并没有在同一个事物中执行,那他是如何操作的,我的理解是 在不使用事物的时候 把多个DbContext存放在ActiveDbContexts 在调用工作单元的时候 ...