JAVA--四大基本流
(一)流的定义
流是程序和设备之间嫁接起来用于数据传输的一根管道,该管道上有许多按钮用于实现不同的功能,而这根管道就是流。(流是可以实现输入输出的类,即流一定是类但类不一定是流)
(二)流的分类
1、按数据流的方向不同,可分为输出流、输入流;
2、按处理数据单位不同,可分为字节流、字符流;
3、按功能不同,可分为节点流(原始流)、处理流(包裹流);
(三)四大基本抽象流
注:1、顾名思义InputStream和OutputStream读写数据的单位是一个字节,Reader和Writer读写数据的单位是一个字符(Java中一个字符占两个字节);
2、InputStream、OutputStream、Reader、Writer这四个类都是抽象类;
3、输入是从设备中读取写入程序中,输出是从程序中读取写入设备中;
(四)常用方法
InputStream流常用方法
1、public int read(); throws IOException
读取一个字节并以整型的形式返回,如果读取到输入流末尾则返回-1;
import java.io.*;//导入流的包
public class TestRead_1 {public static void main(String[] args) throws Exception {int data;FileInputStream bis=new FileInputStream("D:\\JAVA\\lianxi\\src\\lianxi\\TestRead_1.java");
//FileInputStream是InputStream的子类为文本流,其中该地址是本人该程序中的路径,需要更改成自己电脑的程序路径data=bis.read();while(-1 != data) {System.out.printf("%c",data);data=bis.read();}bis.close();//使用流必须调用的方法,关闭此输入流并释放与该流相关的所有系统资源}
}
2、public int read(byte[] b) throws IOException
从输入流中读取一定数量的字节,并将其储存在缓冲区数组b中,以整数形式返回实际读取的字节数;
如果b中长度为0,便不读取任何字节,并返回0;
如果因为流位于文件末尾而没有可用字节,则返回-1;、
public class TestRead_2{public static void main(String[] args)throws Exception {FileInputStream fr=new FileInputStream("D:/JAVA/lianxi/src/lianxi/liu1.java");//FileInputStream是InputStream的子类为文本流,其中该地址是本人该程序中的路径,需要更改成自己电脑的程序路径int ch;byte[] b=new byte[1024];//创建一个byte类型数组ch=fr.read(b);//返回实际读取的字节数System.out.println(ch);while(ch!=-1) {ch=fr.read();//返回-1System.out.println(ch); }fr.close();}
}
//输出:该程序实际字节数
// -1
3、public int read(byte[] b,int off,int len); throws IOException
从下标off的位置开始读取最多len个字节数据储存于b数组缓冲区;
返回实际读取的字节数以整数形式返回,读取到输入流末尾则返回-1;
public class TestRead_3{public static void main(String[] args)throws Exception {FileInputStream fr=new FileInputStream("D:/JAVA/lianxi/src/lianxi/liu1.java");//FileInputStream是InputStream的子类为文本流,其中该地址是本人该程序中的路径,需要更改成自己电脑的程序路径int ch;byte[] b=new byte[1024];//创建一个byte类型数组ch=fr.read(b,0,1000);//返回实际读取的字节数System.out.println(ch);while(ch!=-1) {ch=fr.read();//返回-1System.out.println(ch); }fr.close();}
}
//输出:该程序实际字节数
// -1
4、void close(); throws IOException
关闭此输入流并释放与此输入流相关的所有系统资源;
OutputStream流常用方法
1、void write(int b); throws IOException
向输出流中写入一个字节数据;
import java.io.*;
public class TestWrite_1{public static void main(String[] args)throws Exception {FileInputStream fr=new FileInputStream("D:/JAVA/lianxi/src/lianxi/liu1.java");//FileInputStream是InputStream的子类为文本流,其中该地址是本人该程序中的路径,需要更改成自己电脑的程序路径FileOutputStream fo=new FileOutputStream("C:\\Users\\86152\\Desktop\\suibian.doc");//路径是写入的设备的地址,其中这是本人桌面的建立的一个doc文档int i;i=fr.read();while(-1!=i) {fo.write(i);i=fr.read();}fo.flush();//将输出流的缓冲流数据全部写出到达目的地fo.close();fr.close();} }
输出结果:
2、void write(byte[] b); throws IOException
将一个字节类型的数组中的数据写入输出流;
public class TestWrite_2 {public static void main(String[] args)throws Exception {FileInputStream fr=new FileInputStream("D:/JAVA/lianxi/src/lianxi/liu1.java");FileOutputStream fo=new FileOutputStream("C:\\Users\\86152\\Desktop\\suibian.doc");int i;byte[] b=new byte[1024];i=fr.read(b,0,1024);while(-1!=i) {fo.write(b);i=fr.read(b,0,1024);}fo.flush();fo.close();fr.close();} }
3、void write(byte[] b,int off,int len); throws IOException
将一个字节类型的数组从指定位置off(下标)开始写入len个字节到输入流;
public class TestWrite_3 {public static void main(String[] args)throws Exception {FileInputStream fr=new FileInputStream("D:/JAVA/lianxi/src/lianxi/liu1.java");FileOutputStream fo=new FileOutputStream("C:\\Users\\86152\\Desktop\\suibian.doc");int i;byte[] b=new byte[1024];i=fr.read(b,0,1024);while(-1!=i) {fo.write(b,0,1024);i=fr.read(b,0,1024);}fo.flush();fo.close();fr.close();} }
4、void close(); throws IOException
关闭此输入流并释放与此输入流相关的所有系统资源;
5、void flush(); throws IOException
将输出流的缓冲流数据全部写出到达目的地
Reader流常用方法
1、pubic int read(); throws IOException
读到一个字符并以整数的形式返回(0~255),如果到输入流末尾则返回-1;
import java.io.*;
public class TestRead_4 {public static void main(String[] args) throws Exception {int data;File bis=new FileRead("D:\\JAVA\\lianxi\\src\\lianxi\\TestRead_4.java");data=bis.read();while(-1 != data) {System.out.printf("%c",data);data=bis.read();}bis.close();}
}
2、public int read(char[] buf); throws IOException
读取一系列字符并储存到buf数组,返回实际读取的字符数,如果读取前已经到输入流的末尾则返回-1;
public class TestRead_5{public static void main(String[] args)throws Exception {FileInputStream fr=new FileInputStream("D:/JAVA/lianxi/src/lianxi/TestRead_5.java");int ch;char[] buf=new char[1024];ch=fr.read(buf);System.out.println(ch);while(ch!=-1) {ch=fr.read();System.out.println(ch); }fr.close();}
}
3、public int read(char[] buf,int off,int len); throws IOException
从off下标开始读取最多len个字符储存到buf字符数组中;
返回实际读取的字符数,如果读取前已经到输入流末尾,则返回-1;
public class TestRead_6{public static void main(String[] args)throws Exception {FileReader fr=new FileReader("D:/JAVA/lianxi/src/lianxi/liu1.java");int ch;char[] buf=new char[1024];ch=fr.read(buf,0,1000);System.out.println(ch);while(ch!=-1) {ch=fr.read();System.out.println(ch); }fr.close();}
}
4、public void close(); throw IOException
关闭流释放内存;
Writer流常用方法
1、public void write(int i); throws IOException
向输入流写入一个字符数据;
import java.io.*;
public class TestWrite_4{public static void main(String[] args)throws Exception {FileReader fr=new FileReader("D:/JAVA/lianxi/src/lianxi/liu1.java");FileWriter fo=new FileWriter("C:\\Users\\86152\\Desktop\\suibian.doc");int i;i=fr.read();while(-1!=i) {fo.write(i);i=fr.read();}fo.flush();fo.close();fr.close();} }
2、public int write(char[] buf); throws IOException
将一个字符类型的数组中的数据写入输出流;
public class TestWrite_5 {public static void main(String[] args)throws Exception {FileReader fr=new FileReader("D:/JAVA/lianxi/src/lianxi/liu1.java");FileWriter fo=new FileWriter("C:\\Users\\86152\\Desktop\\suibian.doc");int i;char[] buf=new char[1024];i=fr.read(buf,0,1024);while(-1!=i) {fo.write(buf);i=fr.read(buf,0,1024);}fo.flush();fo.close();fr.close();} }
3、public int write(char[] buf,int off,int len); throws IOException
将一个字符串从下标off开始最多len个字符写入输出流中;
public class TestWrite_6 {public static void main(String[] args)throws Exception {FileReader fr=new FileReader("D:/JAVA/lianxi/src/lianxi/liu1.java");FileWriter fo=new FileWriter("C:\\Users\\86152\\Desktop\\suibian.doc");int i;char[] b=new char[1024];i=fr.read(b,0,1024);while(-1!=i) {fo.write(b,0,1024);i=fr.read(b,0,1024);}fo.flush();fo.close();fr.close();} }
4、void close(); throws IOException
关闭此输入流并释放与此输入流相关的所有系统资源;
5、void flush(); throws IOException
将输出流的缓冲流数据全部写出到达目的地
JAVA--四大基本流相关推荐
- Java Stream(流)的分类, 四大基本流的介绍
上一篇文章已经介绍过什么是流, 以及流的基本概念 http://blog.csdn.net/nvd11/article/details/29917065 本文主要介绍java四大基本流的方法. 一, ...
- java数据通道抽象为流_【java】IO流
对于java的IO流的理解很长时间来都是很乱,包括学习其他的语言对这一块知识也都算是一个盲点.更多的时候一提到读取保存数据就是使用数据库.这一次学习了IO流,自己又解决了一个很大的盲点. IO流为我们 ...
- Java Stream简介, 流的基本概念.
在Java or .net编程中, 我们经常见到"stream" 这个字眼. 我们大概知道这是个流的意思, 如果看完本文的话, 应该会有1个大概的概念. 一, Java中什么是S ...
- Java学习---Day16_IO流基础篇
Java学习-Day16_IO流基础篇 文件操作 操作磁盘上的某一个文件或某一个文件夹,可以对他们进行创建或删除.移动.属性获取.属性设置等操作.但是,不包含读取文件的内容.拷贝文件 ps:java中 ...
- java 常见io流 万字详解
文章目录 1.IO简介 1.1什么是IO流. 1.2数据源(Data Source) 1.3什么是流 1.4处理对象分类 1.5 java四大io抽象类及其他 1.6inputStream 1.61简 ...
- “万字“ Java I/O流讲解
Java I/O流讲解 每博一文案 谁让你读了这么多书,又知道了双水村以外还有一个大世界,如果从小你就在这个天地里,日出而作,日落而息. 那你现在就会和众乡亲抱同一理想:经过几年的辛劳,像大哥一样娶个 ...
- JAVA基础 IO流技术学习笔记
目录 一.IO 流技术介绍 1.1 什么是IO? 1.2 流的概念 1.3 数据源 1.3.1 什么是数据源? 1.3.2数据源的分类 二.第一个简单的IO流程序 三.IO流经典写法(适用于任何 ...
- java之IO流(2)
30.3. 文件拷贝操作 需求:把copy_before.txt文件中的数据拷贝到copy_after.txt文件中 private static void copy() throws Excepti ...
- Java基础—IO流
第一讲 IO概述 1. 流的概念 IO流即InputOutput的缩写,在Java中IO流用来处理设备之间的数据传输,Java对数据的操作是通过IO流的方式, 我们可以把IO流抽象的当作一根管道, ...
- java的输出流包括_【转】输入/输出流 - 深入理解Java中的流 (Stream)
基于流的数据读写,太抽象了,什么叫基于流,什么是流?Hadoop是Java语言写的,所以想理解好Hadoop的Streaming Data Access,还得从Java流机制入手.流机制也是JAVA及 ...
最新文章
- c语言英语笔试题,C语言面试题(国外英语资料).doc
- Kali Linux安全渗透教程(内部资料)
- 如果给你500万,让你朝对象腿上开一枪,你愿意吗?
- 系统检测到您正在使用网页抓取工具_【安全】58反抓取简介
- python神器pandas_Python数据处理神器,pandas入门必需理解的核心内容
- 条件变量 ---C++17 多线程
- 将Win10包含中文的用户名改为英文的,解决Anaconda navigator无法运行jupyter的问题
- python画彩虹爱心_用python画一颗彩虹色爱心送给女朋友!!!
- 网易:层次遍历二叉树
- linux文件管理命令详解
- 使用 HMAC-SHA1 算法
- IOS+Android 车牌识别SDK开发包——可以各种角度瞬间OCR识别车牌牌号
- TRUNK 的介绍和配置
- mov文件如何转换成mp4?巧用嗨格式视频转换器
- sd卡重新分区以及格式化
- 不用找,你想要的手抄报 小报印刷模板素材都在这里
- 二极管质量好坏判断方法,轻松学会-通程创品
- 洞悉人性的职场沟通技术
- 【BZOJ3872】Ant colony(二分,动态规划)
- win11照片一打开就是打印怎么办?
热门文章
- 汇编语言 AND逻辑与指令
- 解决Win10局域网共享问题:请检查名称的拼写 否则 网络...
- MyEclipse中jer配置
- SAP中标准外协加工中成品收货时下级组件反冲利润中心确定控制逻辑
- MATLAB+GUI:手动修改曲线中的点
- python延时函数 微秒_Python程序可显示当前时,分,秒和微秒
- PMP 考试是一个骗局吗?
- 社保二季度亲自加仓三股遭套
- python 下载qq群文件_python获取所有qq好友、全部群所有成员部分信息,并保存列表至电子表格文件...
- 中国外文局文化传播中心借力vLive虚拟直播,打造国际汉文化云讲堂