一、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流 \ 以及文件输入输出的更多相关文章

  1. Java:IO流与文件基础

    Java:IO流与文件基础 说明: 本章内容将会持续更新,大家可以关注一下并给我提供建议,谢谢啦. 走进流 什么是流 流:从源到目的地的字节的有序序列. 在Java中,可以从其中读取一个字节序列的对象 ...

  2. Java基础教程:IO流与文件基础

    Java:IO流与文件基础 说明: 本章内容将会持续更新,大家可以关注一下并给我提供建议,谢谢啦. 走进流 什么是流 流:从源到目的地的字节的有序序列. 在Java中,可以从其中读取一个字节序列的对象 ...

  3. java io流 对文件夹的操作

    java io流 对文件夹的操作 检查文件夹是否存在 显示文件夹下面的文件 ....更多方法参考 http://www.cnblogs.com/phpyangbo/p/5965781.html ,与文 ...

  4. java io流 创建文件、写入数据、设置输出位置

    java io流 创建文件 写入数据 改变system.out.print的输出位置 //创建文件 //写入数据 //改变system.out.print的输出位置 import java.io.*; ...

  5. IO流----操作文件的9种方法代码实现

    IO流----操作文件的9种方法代码实现: 1:使用字节流读写数据: 四种方式: method1:          每次读写一个字节,边读边写: /* * 复制文本文件. * * 数据源:从哪里来 ...

  6. 38、使用IO流进行文件拷贝

    使用IO流进行文件拷贝 需求:在项目的根目录里面创建一个java.txt的文件,然后将这个文件拷贝到file文件夹里面并且重命名为good.txt文件先以流的方式将java.txt文件读取到内存中,然 ...

  7. Java基础 IO流的文件和目录的五类主要操作

    笔记: /** IO流的 文件和目录的操作 * 1.路径需要 需要两个反斜杠 或者一个单斜杠! * 绝对路径:包括盘符在内的完整的路径名! * 相对路径:在当前目录文件下的路径! * 2.File 是 ...

  8. java 后台通过IO流把文件传到前端并下载

    我的业务需求是两个不同的web程序放在不同的服务器上,web程序A要访问到web程序B上传上来的文件,所以用到了这一个IO读取文件的接口 JAVA代码(排版有点问题  已经尽力补救了(:3_ヽ)_) ...

  9. IO流的文件输入输出效率问题

    IO流的文件输入输出效率问题 第一种方法 我用使用一个数组,把FIleInputStream获取到的二进制数存入这个数组,然后使用FIleOutputStream进行输出 缺点:速度慢 优点:不消耗内 ...

随机推荐

  1. 说说Timing这回事(转载)

    本文原始位置:FPGANotes Blog http://wiki.fpganotes.com/doku.php/ise:timing:my_summary Intro 问:一个FPGA设计项目需要用 ...

  2. 安装SQl 2008为SQL Server代理服务提供的凭据无效

    解决:安装SQl 2008为SQL Server代理服务提供的凭据无效 sql server 2008 代理服务提供的凭据无效sql server 2008 代理服务提供的凭据无效在Windows S ...

  3. Maven(二)使用eclipse创建maven多模块项目

    maven作为一种自动化构建工具,在现在的企业应用开发中运用非常普遍. 企业项目一般都比较大,多采用maven管理的多模块项目,下面直接上创建步骤 一.创建一个maven项目

  4. MySql绿色版下载,安装,配置详解

    下载完成之后解压,楼主用的版本是:mysql-5.7.15-winx64 解压完在根目录下建立一个data文件夹和my-default.ini my-default.ini里面的内容如下:(红色内容根 ...

  5. gdb汇编调试

    GDB调试汇编堆栈分析 代码: sudo apt-get install libc6-dev-i386命令安装所需库 进入之后先在main函数处设置一个断点,再run一下,使用disassemble指 ...

  6. C++ 编译报错

    vs编译错误描绘如下: 1>f:\company\newphone\softphoneservice\softphoneservice\EventS.h(13): error C2143: 语法 ...

  7. $.getJSON在IE8下失效

    $.getJSON("/Home/GetData?r=" + Math.random(), { ids: ids }, function(data) { //处理逻辑 }); 原因 ...

  8. 监听JVM的几个命令(可用于linux 本机)

    1. jstat 这个命令对于查看Jvm的堆栈信息很有用.能够查看eden,survivor,old,perm等heap的capacity,utility信息 对于查看系统是不是有能存泄漏以及参数设置 ...

  9. Java7的垃圾回收

    HotSpot JVM一共有4个垃圾回收器:Serial(串行).Parallel / Throughput(并行).CMS(并发).and the new kid on the block G1(G ...

  10. [Nginx] 在Linux下的启动、停止和重加载

    Nginx的启动 /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf 其中-c参数指定配置文件路径.   Nginx的停止 ...