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流传输数据 传输数据大小 ...
随机推荐
- Web安全工具大汇聚
http://www.owasp.org/index.PHP/Phoenix/Tools http://sebug.net/paper/other/Web安全工具大汇聚.txt =========== ...
- golang 二进制转十进制实现方式
golang 二进制转十进制实现方式 直接上代码 package main import ( "fmt" "math" ) func StringToIntAr ...
- gitlab钩子搭建
目标:在本地开发机上push代码到GitLab仓库时,通过钩子同步到测试服务器 准备工作GitLab 服务器一台测试服务器一台本地开发服务器一台 1.在gitlab上新建一个项目,名称test2.在本 ...
- NOIP2017Day1题解
Day1 T1.小学奥数... 代码: #include<iostream> #include<cstring> #include<string> #include ...
- 第三次 orm自动建表及遇到的问题
Hibernate支持自动建表,在开发阶段很方便,可以保证hbm与数据库表结构的自动同步. 方法很简单,在hibernate.cfg.xml内加入 <property name="hi ...
- GPU渲染流水线的简单概括
GPU流水线 主要分为两个阶段:几何阶段和光栅化阶段 几何阶段 顶点着色器 --> 曲面细分着色器(可选)----->几何着色器(可选)----->裁剪-->屏幕 ...
- springMVC(spring)+WebSocket案例(获取请求参数)
开发环境(最低版本):spring 4.0+java7+tomcat7.0.47+sockjs 前端页面要引入: <script src="http://cdn.jsdelivr.ne ...
- [Mysql]——通过例子理解事务的4种隔离级别(转)
SQL标准定义了4种隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的. 低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销. 一.事务隔离级别分类 第1级别:R ...
- maven的pom文件中指定编译的版本
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> ...
- Linux时间子系统之三:时间的维护者:timekeeper
专题文档汇总目录 Notes: 原文地址:Linux时间子系统之三:时间的维护者:timekeeper 本系列文章的前两节讨论了用于计时的时钟源:clocksource,以及内核内部时间的一些表示方法 ...