Java I/O流详解与应用
注:学习之前,需要自己思考,不要盲目的去看!!!!!不然没有任何意义
I/O流(一)
1.定义:实现设备之间的传输
2.作用:实现数据的读入和写出
3.分类:根据操作分为:输入流和输出流
根据类型分为:字节流和字符流
字节流:可以操作任何数据的传入和传出,因此传输的文件可以是:音频,视频,图片,文本
字符流:只能传输文本类型的数据(人可以认识的字体),因此传输的文件只可以是:文本,但其有其存在的价值是:在字节流的基础上融入了编码的操作
字节流的父类(抽象的abstract):InputStream 字节输入流(读)
OutputStream 字节输出流(写)
字符流的父类(抽象的abstract):Reader 字符输入流
Writer 字符输出流
字符流的读代码:
//1.创建字符输入流的对象并关联文件 (文件必须有)
FileReader fileReader = new FileReader("某个文件的路径");
//2.1读的第一种方式:一个一个读
int num = 0;
num=file.read();//返回值是int型的字符,如果值为-1表示已经读完了
System.out.println((char)num);//转换成ASCII码值
// while ((num = file.read()) != -1) {
// System.out.print((char) num);
// }
//2.2读的第二种方式:一组一组读
char[] arr = new char[2];
int num1 = 0;
while ((num1 = file.read(arr)) != -1) {
System.out.print(new String(arr, 0, num1));
}
//3.一定要关闭流
fileReader.close();
字符流的写代码:
// 向文本文件写入数据
// 1.创建FileWrite类型的对象
// 默认路径当前的工程
// 如果当前文件在指定的目录下存在,不会在创建新的,直接使用,并将文件上的内容覆盖
//如果不存在,创建一个新的
//必须保证文件的路径是存在的,否则包异常
FileWriter fileWriter = new FileWriter("temp.txt");
//当执行writer方法的时候,数据被临时放入了流对象的内部数组中,这是一个字节数组,内部会去查编码表,这时通过flush方法刷新,才能写入磁盘
fileWriter.write("haha");//2.写入
//3.刷新
//fileWriter.flush();
//4.关闭
//在close内部默认已经实现了flush的功能
fileWriter.close();
//流关闭之后不能再写数据
// fileWriter.write("go");异常
字节流读代码:
public class Test {
public static void main(String[] args) throws IOException {
FileInputStream inputStreamReader = new FileInputStream("D:\\Downloads\\workSpaceCJY\\WorkDemoIO\\c.txt");//随便哪个目录
int num = 0 ;
byte[]arr= new byte[11];
while((num = inputStreamReader.read(arr))!=-1) {
System.out.println(new String(arr,0,num));
}
}
}
字节流读写结合:
public static void main(String[] args) throws IOException {
FileInputStream inputStreamReader = new FileInputStream("D:\\Downloads\\workSpaceCJY\\WorkDemoIO\\c.txt");
FileOutputStream fileOutputStream = new FileOutputStream("d.txt");
int num = 0;
byte[] arr = new byte[11];
while ((num = inputStreamReader.read(arr)) != -1) {
System.out.println(new String(arr, 0, num));
fileOutputStream.write(arr);
}
inputStreamReader.close();
fileOutputStream.close();
}
Java I/O流详解与应用的更多相关文章
- Java之IO流详解
IO流 Input/Output 完成输入/输出 应用程序运行时——数据在内存中 ←→ 把数据写入硬盘(磁带) 内存中的数据不可持久保存的 输入:从外部存储器(硬盘.磁带.U盘)把数据读入内存. ...
- java I/O流详解
概况 I/O流主要分为二大类别:字符流和字节流. 字节流(基本流) 1.字节输入流 类名:FileInputStream 特点:读(对文件进行读取操作) 父类:InputStream ...
- JAVA中IO流详解
IO流:数据传输是需要通道的,而IO流就是数据传输的通道. IO流可以形象的比喻为运送货物的传输带. IO流的分类: ①根据操作的数据类型的不同可以分为 :字节流与字符流. ②根据数据的流向分为:输入 ...
- java之IO流详解(二)
好了,昨天讲了字节流,现在我们就来讲字符流吧... 字符流可以这样理解,字符流 = 字节流 + 编码表,目的是为了更好的操作中文字符(注:字符流只可以可以操作字符类型的文件,不能操作影音图像文件,要操 ...
- java之IO流详解(一)
IO流的分类: A:流向 输入流 读取数据 输出流 写出数据 B:数据类型 字节流 字节输入流 InputStream 字节输出流 OutputStream 字符流 字符输入流 Reader 字 ...
- Java I/O流详解与应用(二)
I/O流(二) 一.缓冲流(缓冲区): 特点:本身没有读写的能力,需要借助普通的读写流进行读写,但可以加快读写的效率 分类:字符缓冲流:BufferedReader(读),BufferedWriter ...
- Java 8 Stream API详解--转
原文地址:http://blog.csdn.net/chszs/article/details/47038607 Java 8 Stream API详解 一.Stream API介绍 Java8引入了 ...
- Java输出流FileOutputStream使用详解
Java输出流FileOutputStream使用详解 http://baijiahao.baidu.com/s?id=1600984799323133994&wfr=spider&f ...
- java网络编程(TCP详解)
网络编程详解-TCP 一,TCP协议的特点 面向连接的协议(有发送端就一定要有接收端) 通过三次连接握手建立连接 通过四次握手断开连接 基于IO流传输数据 传输数据大小 ...
随机推荐
- JavaScript对象添加、删除、修改对象的属性
https://www.cnblogs.com/goweb/p/5357640.html 利用动态特性 function Person(){}; var person = new Person(); ...
- JavaScript中对象数组 根据某个属性值 然后push到新的数组
原文链接 https://segmentfault.com/q/1010000010075035 将下列对象数组中,工资大于1w的员工,增加到对象数组 WanSalary中 var BaiduUser ...
- JS(原生js和jq方式)获取元素属性(自定义属性),删除属性(自定义属性)
JS(原生js和jq方式)获取元素属性(自定义属性),删除属性(自定义属性) 以下内容: 一.获取元素的属性 二.设置元素的属性 三.删除元素的属性 一.获取元素的属性 1-原生JS 获取属性 .ge ...
- SQL基本语句的优化10个原则
原则一:尽量避免在列上进行运算,这样会导致索引失效. 例如: ; 优化: SELECT * FROM table WHERE d >= '2011-01-01'; 原则二:使用JOIN时,应该用 ...
- ccf 目录格式转换
任务背景: 在网络上获取的ccf目录的格式是PDF,但是要进行数据分析时,PDF格式的数据是不符合要求的,因此需要将pdf格式转化为excel格式 任务目的: 将pdf格式的CCF目录转化为excel ...
- Node笔记四
异步操作 -Node采用chrome v8 引擎处理javascript脚本 --v8最大特点就是单线程运行,一次只能运行一个任务 -Node大量采用异步操作 --任务不是马上执行,而是插在任务队列的 ...
- EF Linq中的左连接Left Join查询
linq中的join是inner join内连接,就是当两个表中有一个表对应的数据没有的时候那个关联就不成立. 比如表A B的数据如下 from a in A join b in B on a.BId ...
- flex 生成多边形时内、外环计算
//顺时钟 var pA:Array = [{x:"2969925.6674000006",y:"476254.4874999998"},{x:"29 ...
- 老司机告诉你高质量的Java代码是怎么练成的?
一提起程序员,首先想到的一定是"码农",对,我们是高产量的优质"码农",我们拥有超跃常人的逻辑思维以及不走寻常路的分析.判别能力,当然,我们也有良好的编码规范, ...
- 落入绝地求生的Python神仙,实现绝地求生无后座!
叙述 绝地求生已经出来那么久了,大家应该都晓得如今的游戏情形很是差 .特别在高端局,神仙满天飞 搞得很多人类玩家很是没有游戏体验! 由于绝地求生的火爆,繁衍出许多外挂流传于各个地方.飞机上.网吧内,各 ...