什么是IO流 \ 以及文件输入输出
一、IO流的分类:
流按照操作数据的类型分为两种:字节流;字符流。
1.什么是字节流:读取的是文件的二进制数据,不会对二进制做处理,不会解析成看得懂的数据。
2.什么是字符流:读取的是文件的二进制数据,他会将二进制数据转转换成我们能识别的字符(解码),字符流是以字符为单位的。
总结(字符流 = 字节流 + 解码);
3.流按照流的方向分为:输入流和输出流。
如何判断输入和输出:以当期的应用程序为参考,观察数据是流入和流出,如果是流入就是输入。如果是流出就是输出。
二、字节流输入流:
InputStream:此抽象类是表示字节的输入流的所以类的超类,也是抽象类。
使用的是InputStram的子类:FileInputStram。
三、FileInputStram使用步骤以及几个方式来创建和获取:
read:只获取第一个字节 close():关闭资源
方法一:每次只读取一个字节
1.查找目标文件
2.建立通道
3.读取数据
4.关闭资源(释放资源)
方法二:用循环读取数据提示循环的速度太慢
1.查找目标文件
2.建立通道
3.for读取数据
4.关闭资源(释放资源)
方法三:建立缓存区来读取数据 缺点不能够读取一个完整的文件
1.查找目标文件
2.建立通道
3.创建一个缓存区
4.读取数据
5.关闭资源(释放资源)
方式四:建立缓存区和循环的方法来读取
1.查找目标文件
2.建立通道
3.创建一个缓存区
4.for或者(while)读取数据
5. 关闭资源(释放资源)
四、字节流输出流:
1. OutputStram:他也是所以字节输出流的超类,也是一个抽象的类,使用子类FileOutputStram 文件输出流
2. FileOutputStram 使用步骤
1.找到目标文件
2创建通道
3.写数据
4.关闭资源
3. FileOutputStram的使用注意事项:
1.使用FileOutputStram写数据的时候,如果目标文件不存在,那么就会自己创建一个目标文件对象。
2.使用FileOutputStram写数据的时候,如果目标文件存在,那么就会先将里面的内容清空在把数据写入。
3. 使用FileOutputStream写数据的时候,如果目标文件存在,想将数据在原有的基础上追加,这个时候就应该使FileOutputStream(File file, boolean append) 构造方法, append如果为true表示可以追加数据,反之不信
4.使用FileOutputStram写数据的时候,用write(int a)方法来写数据,虽然接收的是int,但实际只有一个字节的数据操作的是第八位的二进制,其他的24位全部不要。
什么是IO流 \ 以及文件输入输出的更多相关文章
- Java:IO流与文件基础
Java:IO流与文件基础 说明: 本章内容将会持续更新,大家可以关注一下并给我提供建议,谢谢啦. 走进流 什么是流 流:从源到目的地的字节的有序序列. 在Java中,可以从其中读取一个字节序列的对象 ...
- Java基础教程:IO流与文件基础
Java:IO流与文件基础 说明: 本章内容将会持续更新,大家可以关注一下并给我提供建议,谢谢啦. 走进流 什么是流 流:从源到目的地的字节的有序序列. 在Java中,可以从其中读取一个字节序列的对象 ...
- java io流 对文件夹的操作
java io流 对文件夹的操作 检查文件夹是否存在 显示文件夹下面的文件 ....更多方法参考 http://www.cnblogs.com/phpyangbo/p/5965781.html ,与文 ...
- java io流 创建文件、写入数据、设置输出位置
java io流 创建文件 写入数据 改变system.out.print的输出位置 //创建文件 //写入数据 //改变system.out.print的输出位置 import java.io.*; ...
- IO流----操作文件的9种方法代码实现
IO流----操作文件的9种方法代码实现: 1:使用字节流读写数据: 四种方式: method1: 每次读写一个字节,边读边写: /* * 复制文本文件. * * 数据源:从哪里来 ...
- 38、使用IO流进行文件拷贝
使用IO流进行文件拷贝 需求:在项目的根目录里面创建一个java.txt的文件,然后将这个文件拷贝到file文件夹里面并且重命名为good.txt文件先以流的方式将java.txt文件读取到内存中,然 ...
- Java基础 IO流的文件和目录的五类主要操作
笔记: /** IO流的 文件和目录的操作 * 1.路径需要 需要两个反斜杠 或者一个单斜杠! * 绝对路径:包括盘符在内的完整的路径名! * 相对路径:在当前目录文件下的路径! * 2.File 是 ...
- java 后台通过IO流把文件传到前端并下载
我的业务需求是两个不同的web程序放在不同的服务器上,web程序A要访问到web程序B上传上来的文件,所以用到了这一个IO读取文件的接口 JAVA代码(排版有点问题 已经尽力补救了(:3_ヽ)_) ...
- IO流的文件输入输出效率问题
IO流的文件输入输出效率问题 第一种方法 我用使用一个数组,把FIleInputStream获取到的二进制数存入这个数组,然后使用FIleOutputStream进行输出 缺点:速度慢 优点:不消耗内 ...
随机推荐
- OnNcCalcSize改变标题栏等的高度
在创建窗口时,当收到 WM_NCCALCSIZE 消息时才指定客户区.不管什么时候,只要 Windows 想知道窗口客户区的大小,它便会发送这个消息. NCCALCSIZE_PARAMS 结构保存三个 ...
- Python 练习
1.有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中.即: {'k1': ...
- MVC KindEdit
先将下载的KindEditor放到项目中 View页面 <!DOCTYPE html><html><head> <meta name="vie ...
- 【MongoDB】MongoDB 3.2 SCRAM-SHA-1验证方式
新版本已取消addUser方法,改使用createUser方法 官方地址:https://docs.mongodb.com/manual/tutorial/create-users/ 官方地址:htt ...
- PHP5.3、PHP5.4下安装ZendOptimizer或Zend Guard Loader的方法
现在很多PHP程序都需要ZendOptimizer环境,但是ZendOptimizer在PHP5.2之后已经被支持,那怎么办,Zend也不会这么做,原来PHP5.3开始ZendOptimizer正式改 ...
- 向IPython Notebook中导入.py文件
IPython Notebook使用起来简洁方便,但是有时候如果需要导入一个现有的.py文件,则需要注意选择导入的方法以达到不同的效果.目前遇到3种方法. (1) 将文件保存为.ipynb格式,直接拖 ...
- Ubuntu 14.10安装SecureCRT 7.3(转)
原文 :http://blog.csdn.net/chszs/article/details/40623169 1.软件准备 Ubuntu14.04 x64 下载SecureCRT7.3的版本:scr ...
- dynamic 的使用 待续
Dynamic 使用场景之一 : 替代反射 class Me { public string Blog { get; set; } public string GetName() { return&q ...
- information_schema系列八(事物,锁)
今天我们主要看一下MySQL information_schema里面的关于innodb的锁和事物的两三个系统表: 看一下锁对应的sql: select * from innodb_lock_wait ...
- {HDU}{2516}{取石子游戏}{斐波那契博弈}
题意:给定一堆石子,每个人最多取前一个人取石子数的2被,最少取一个,最后取石子的为赢家,求赢家. 思路:斐波那契博弈,这个题的证明过程太精彩了! 一个重要的定理:任何正整数都可以表示为若干个不连续的斐 ...