JAVA(IO流)知识整理
IO (Input Output)流
IO流用来处理设备之间的数据传输;
JAVA对数据的操作是通过流的方式;
JAVA对于操作流的对象都在IO包中;
流按操作数据分为两种:字节流和字符流;
流按流向分为输入流和输出流。
IO流常用基类
字节流的抽象基类:
InputStream ,OutputStream
字符流的抽象基类:
Reader , Writer
注:由这4个类派生出的子类名称都是以其父类名作为子类明的后缀。
如:InputStream 的子类 FileInputStream。
如:Reader 的子类 FileReader。
既然IO流是用于操作数据的,
那么数据最常见的体现形式是:文件。
需求:在硬盘上,创建一个文件并写入一些文字数据。
找到一个专门操作文件的Writer子类对象。FileWriter。后缀名是父类名,前缀名是该流对象的功能。
import java.io.*;class FileWriterDemo
{public static void main(String[] args) throws IOException{//创建一个FileWriter对象。该对象一被初始化就必须要明确被操作的文件。//该文件会被创建到指定的目录下。如果该目录下已有同名文件,将被覆盖。//其实该步骤就是在明确数据要存放的目的地。FileWriter fw = new FileWriter("D:\\test.txt");//调用write方法,将字符串写入到流中。fw.write("abcdfeg");//刷新流对象中的缓冲区中的数据。//将数据刷新到目的地中。fw.flush();//关闭流资源,但是在关闭之前会刷新一次内部的缓冲中的数据,将数据刷新到目的地。//和flush的区别:flush刷新之后,流可以继续使用,close刷新后,将会关闭流。fw.close();}
}
对流的异常操作
import java.io.*;class FileWriterDemo2
{public static void main(String[] args){ //把变量放在try代码块外面,这样在finally代码块环境中也能使用 FileWriter fw = null;try{fw = new FileWriter("k:\\text.txt");fw.write("aaaaaaa");}catch(IOException e){System.out.println(e.toString());}finally{try{//判断资源对象是否存在if(fw != null)fw.close();}catch(IOException e){System.out.println(e.toString());}}}
}
读取文件内容
import java.io.*;class FileReaderDemo
{public static void main(String[] args) {FileReader fr = null;try{fr = new FileReader("D:\\test.txt");int ch = 0;while((ch=fr.read()) != -1){System.out.print((char)ch);}}catch(IOException e){System.out.println(e.toString());}finally{try{if(fr != null)fr.close();}catch(IOException e){System.out.println(e.toString());} } }
}
用数组参数读取文件
import java.io.*;class FileReaderDemo2
{public static void main(String[] args) throws IOException{FileReader fr = null;try{fr = new FileReader("F:\\java\\FileReaderDemo.java");char[] buf = new char[1024];//创建一个临时数组int num = 0;while((num = fr.read(buf)) != -1)//把读取的数据存入字符数组中{System.out.print(new String(buf,0,num));//把数组转成字符串并且打印出来}}catch(IOException e){System.out.println(e.toString());}finally{try{ if(fr != null)fr.close();}catch(IOException e){System.out.println(e.toString());}}}
}
文件的拷贝:
import java.io.*;class FileCopyDemo2
{public static void main(String[] args){copy();}public static void copy(){FileWriter fw = null;FileReader fr = null;try{fw = new FileWriter("F:\\java\\xin.txt",true); //创建输入流fr = new FileReader("F:\\java\\new.txt"); //创建输出流char[] buf = new char[1024]; //定义容器int len = 0; //定义长度while((len=fr.read(buf)) != -1){fw.write(buf,0,len); //把字符数组中的内容存入指定区域}}catch(IOException e){System.out.println(e.toString());}finally{try{if(fw != null)fw.close();}catch(IOException e){System.out.println(e.toString());}finally{ try{if(fr != null)fr.close();}catch(IOException e){System.out.println(e.toString());}}}}
}
字符流的缓冲区
缓冲区的出现提高了对数据的读写效率;
对应类
BufferedWriter , BufferedReader
缓冲区要结合流才能使用;
在流的基础上对流的功能进行了增强。
利用缓冲的文件拷贝
import java.io.*;class BufferedCopyDemo
{public static void main(String[] args) throws IOException{BufferedWriter bufw = null;BufferedReader bufr = null;try{bufw = new BufferedWriter(new FileWriter("FileWriterDemo_copy.txt"));bufr = new BufferedReader(new FileReader("FileWriterDemo.java"));String line = null;while((line = bufr.readLine()) != null){bufw.write(line);bufw.newLine();}}catch(IOException e){System.out.println(e.toString());}finally{try{if(bufr != null)bufr.close();}catch(IOException e){System.out.println(e.toString());}try{if(bufw != null)bufw.close();}catch(IOException e){System.out.println(e.toString());}}}
}
转载于:https://blog.51cto.com/tinsin/1639880
JAVA(IO流)知识整理相关推荐
- 【Java IO流知识总结】
Java IO(Input&Output)
- JAVA系列 IO流 知识结构整理 建立合理的知识框架逻辑 输入输出流 理顺你的思维架构Fileoutput inputStream FileWriter FIleReader结构整理
最近听见一首歌,个人创作时听见觉得挺好听的 先分享给大家https://music.163.com/#/song?id=41666363 それがあなたの幸せとしても (カバー) 切入正题 今天给大家介 ...
- java io流大全_Java IO流系统整理
Java IO流的分类 Java中的流,可以从不同的角度进行分类. 按流向分类: 输入流: 程序可以从中读取数据的流. 输出流: 程序能向其中写入数据的流. 按数据传输单位分类: 字节流:以字节(8位 ...
- java IO流小结
Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ...
- java io流的学习总结~~
java io流的学习总结~~ 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类, ...
- java IO流详解及特性
流的概念和作用 学习Java IO,不得不提到的就是JavaIO流. 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ...
- java IO流进阶 模拟上传头像系统详解
目录 一.前言: 二.思路: PS:直接看代码中的注释也可以. ①分析: ②总结: 三.代码: ①准备工作: ②代码演示: ③运行效果: 四.撒❀: 一.前言: 这篇文章是对之前java IO流基础 ...
- JAVA IO流结构图概览
整理Java IO流的关系,并作图如下,以供参考. 下图基于JDK 1.8制作,其中需要注意的是StringBufferInputStream和LineNumberInputStream已被废弃. 详 ...
- Java IO流详尽解析
流的概念和作用 学习Java IO,不得不提到的就是JavaIO流. 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ...
最新文章
- html标签里写js,JS事件(HTML标签内)
- 服务器清理c盘日志文件,清理WIN2003服务器C盘垃圾的批处理
- Python使用@property方法改变方法为参数
- 游戏人物标记——腾讯笔试
- Ansible-Playbook-template算数运算以及流程控制
- java复合数据类型_复合数据类型
- jenkins 插件目录_三十二张图告诉你如何用Jenkins构建SpringBoot
- CVE-2020-1472复现与完整利用
- dockerfile 创建自定义的tomcat服务
- windows下安装sloth
- 软件安全实验——栈溢出漏洞利用
- python drop用法_python进行数据清理之pandas中的drop用法
- python12306抢票_python编写抢票软件-12306抢票软件run下载python版-西西软件下载
- 系统垃圾清理bat文件
- 服务器装系统提示未找到任何驱动器,u盘装系统win7显示未找到任何驱动器怎么办?未找到任何驱动器解决步骤...
- 一款懒人必备的Python爬虫神器
- 使用模块化扩展iOS应用
- 代理模式(静态代理和动态代理)
- python做三维图片挑战眼力_挑战眼力!三维立体图片你能看出几个
- 02139计算机信息检索-第9章.网络信息检索的未来发展趋势【思维导图】
热门文章
- 新思科技Chekib:AI芯片架构创新面临四大挑战
- 一句话总结K均值算法
- SAP Batch Management 批次主数据中classification视图中GR Date没有被更新?
- TransG : A Generative Model for Knowledge Graph Embedding ACL 2016.Berlin, Germany.
- 乖乖给行人让路?学界推出无人机控制技术NMPC,可在低空中实现自主导航和避障...
- 人类正在进入超级智能时代,论一种新超级智能的崛起
- 仅需1/5成本:TPU是如何超越GPU,成为深度学习首选处理器的
- 工业4.0进行时:增强现实技术如何变革制造业
- 【科普】大脑是如何编码复杂信息的?
- 联合国《2017年信息经济报告》