IO学习(十四)总结IO学习1-13

在javaIO学习过程中,IO流数不胜数,各自的构造方法和常用方法也各有不同,尤其加入处理流,比如缓冲流,转换流以后,创建一个流类对象就显的特别复杂,下面就总结之前1-13种用到所有IO流的常用构造方法

1.File类

File file=new File("F:/Picture/test/test.txt");

具体方法不写了,IO学习2对File类的介绍比较详细了

2.FileInputStream类

InputStream is=new FileInputStream(file);

字节输入流

3.FileOutputStream类

OutputStream os=new FileOutStream(file);

字节输出流

4.BufferedInputStream类

InputStream is=new BufferedInputStream(new FileInputStream(file));

字节缓冲输入流,属于处理流

5.BufferedOutputStream类

OutputStream os=new BufferedOutputStream(new FileOutputStream(file));

字节缓冲输出流,属于处理流

序列化和反序列化

6.ObjectInputStream类

ObjectInputStream ois=new ObjectInputStream(new
BufferedInputStream(new FileInputStream(file)));

反序列化:对象输入流

7.ObjectOutputStream类

ObjectOutputStream oos=new ObjectOutputStream(new
BufferedOutputStream(new FileOutputStream(file)));

序列化:对象输出流

字节数组流

6.ByteArrayInputStream类

InputStream bis=new BufferedInputStream(new ByteArrayInputStream(destByte));

字节数组输入流

7.ByteArrayOutputStream类

ByteArrayOutputStream bos=new ByteArrayOutputStream();

由于输出流有新增方法,所以这里不可以使用多态

8.FileReader类

Reader re=new FileReader(file);

字符输入流

9.FileWriter类

Writer wr=new FileWriter(file);

字符输出流

10.BufferedReader类

BufferedReader br=new BufferedReader(new FileReader(file));

字符缓冲输入流,因为有新的方法,所以不可使用多态

11.BufferedWriter类

BufferedWriter bw=new BufferedWriter(new FileWriter(file));

字符缓冲输出流,因为有新的方法,所以不可使用多态

特殊的转换流,从字节流转为字符流

12.InputStreamReader类

BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream(file)));

13.OutputStreamWriter类

BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file)));

14.ByteArrayInputStream类

InputStream
bis=new BufferedInputStream(new ByteArrayInputStream(destByte));

字节数组输入流

15.ByteArrayOutputStream类

ByteArrayOutputStream
bos=new ByteArrayOutputStream();

由于输出流有新增方法,所以这里不可以使用多态

除了这些IO流类创建对象,文件的拷贝也进行了很多次,

1.用字节流FileInputStream,FileOutputStream

2,字符流进行纯文本的拷贝,FileReader,FileWriter

3.文件夹的拷贝,一个递归算法不断进入文件夹的内部,也涵盖了文件的拷贝

4.利用字节数组流作为中转进行文件的拷贝 ByteArrayOutputStream,ByteArrayInputStream

时间: 2024-08-08 03:46:04

IO学习(十四)总结IO学习1-13的相关文章

Oracle学习(十四):管理用户安全

--用户(user) SQL> --创建名叫 grace 密码是password 的用户,新用户没有任何权限 SQL> create user grace identified by password; 验证用户: 密码验证方式(用户名/密码) 外部验证方式(主机认证,即通过登陆的用户名) 全局验证方式(其他方式:生物认证方式.token方式) 优先级顺序:外部验证>密码验证 --权限(privilege) 用户权限有两种: System:允许用户执行对于数据库的特定行为,例如:创建表.

十四、Android学习笔记_Android回调函数触发的几种方式 广播 静态对象

一.通过广播方式: 1.比如登录.假如下面这个方法是外界调用的,那么怎样在LoginActivity里面执行登录操作,成功之后在回调listener接口呢?如果是平常的类,可以通过构造函数将监听类对象传入即可.但是在Activity中不能传递监听对象,所以考虑使用广播来实现. public void login(final LoginOnClickListener listener) { Intent intent = new Intent(context, LoginActivity.clas

「mac」释放 macOS 菜单栏潜能的软件们(十四款) 19.3.13 删除一款

转至:持续文章更新列表,建议收藏 一款好的软件不但可以节约时间,更能让你体验系统的魅力. 想知道我的 Mac 菜单栏都有什么嘛?这是一篇简单的介绍 Mac 菜单栏工具的文章,共计 15 款,每一款点击都可以直达官网. 大多数软件都提供适用版本,建议先行试用在决定是否购买,如没有试用版可以回复你的问题询问详情! 只有最适合你的应用,才称得上是效率应用. 尝新者:尝试一切新鲜的事物 题图就是我的菜单栏啦! 要知道菜单栏堆积,的确就如同 iOS 上软件从不排序一样令人不快,无法快速找到想要的对应应用,

第十四节课:第13章,部署DNS域名解析服务(bind服务)

(借鉴请改动)  第十二章收尾  12.2.nfs网络文件系统 RHEL7默认安装了nfs,配置文件在  /etc/export  写入格式:共享目录    允许的客户端(参数)  ro                       //只读  rw                      //读写   root_squash         //当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户 no_root_squash     //当NFS客户端以root管理员访问时,映

JAVA学习第五十四课 — IO流(八)打印流 & 序列流

一.综合练习-文件清单列表 获取指定目录下,指定扩展名的文件(含子目录),并将这些文件的绝对路径写到一个文本文件中.也就是建立一个指定扩展名的文件列表 1.深度遍历 2.过滤器->容器 3.写入文件 import java.util.List; import java.io.*; import java.util.ArrayList; public class Main { public static void main(String[] args) throws IOException { F

【python3的学习之路十四】IO编程

File(文件) 方法 file 对象使用 open 函数来创建 file.close() 关闭文件.关闭后文件不能再进行读写操作. file.flush() 刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件, 而不是被动的等待输出缓冲区写入. file.fileno() 返回一个整型的文件描述符(file descriptor FD 整型), 可以用在如os模块的read方法等一些底层操作上. file.isatty() 如果文件连接到一个终端设备返回 True,否则返回 False. f

【原创】go语言学习(十四)IO操作1

目录: 格式化输入 格式化输出 终端输入输出背后的原理理 bufio包的使用 命令行参数处理理和urfave/cli使用 格式化输入 1.从终端获取?用户的输入 格式化输入 fmt.Scan(a …interface{}): 从终端获取?用户输入,存储在Scanln中的参数里,空格和换行符作为分隔符 fmt.Scanf(format string, a…interface{}): 格式化输入,空格作为分隔符,占位符和格式化输出一致 fmt.Scanln(a …interface{}): 从终端获

android学习十四(android的接收短信)

收发短信是每个手机基本的操作,android手机当然也可以接收短信了.android系统提供了一系列的API,使得我们可以在自己的应用程序里接收和发送短信. 其实接收短信主要是利用我们前面学过的广播机制.当手机接收到一条短信的时候,系统会发出一条值为andorid.provider.Telephony.SMS_RECEIVED的广播,这条广播里携带着与短信相关的所有数据.每个应用程序都可以在广播接收器里对它进行监听,收到广播时在从中解析出短信的内容即可. 下面我们来个具体的例子实践下吧,新建一个

Java编程思想学习(十四) 枚举

关键字enum可以将一组具名的值有限集合创建一种为新的类型,而这些具名的值可以作为常规的程序组件使用. 基本enum特性 调用enum的values()方法可以遍历enum实例,values()方法返回enum实例数组,且数组中元素保持在enum声明时的顺序. 1 public class TestEnum { 2 public static void main(String[] args) { 3 Fruit[] values = Fruit.values(); 4 for (Fruit fr

CSS基础学习十四:盒子模型补充之display属性设置

我在CSS基础学习十三:盒子模型的i博文只是阐释了CSS盒子模型,并没有过多的使用实例来演示.这篇博文 就来做一些盒子模型知识的补充.这一部分对于网页总体布局还是蛮重要的,过去大多数使用HTML中的table元素和 框架标签来进行网页的整体布局,现在我们使用最多的是DIV+CSS网页布局.所以一定要掌握好盒子模型,记住 content,border,padding和margin各自在盒子中的作用和使用方式. 先来看一个完整元素的盒子模型实例: <!DOCTYPE html PUBLIC "