java i/o 流详解_java I/O流详解

概况

I/O流主要分为二大类别:字符流和字节流。

字节流(基本流)

1、字节输入流    类名:FileInputStream    特点:读(对文件进行读取操作)    父类:InputStream

2、字节输出流    类名:FileOutputStream 特点:写 (对文件进行写入操作)    父类:OutputStream

字符流(基本流)

1、字符输入流    类名:FileReader   特点:读(对文件进行读取操作)     父类:InputStreamReader

2、字符输出流    类名:FileWriter       特点:写 (对文件进行写入操作)    父类:OutputStreamWriter

缓冲流

字节缓冲流

1、缓冲字节输入流  类名:BufferedInputStream    特点:读(对文件进行读取操作)  父类:FilterInputStream

2、缓冲字节输出流  类名:BufferedOutputStream  特点:写 (对文件进行写入操作)  父类:FilterOutputStream

字符缓冲流

1、缓冲字符输入流  类名:BufferedReader    特点:读(对文件进行读取操作)  父类:Reader   (基本输入流多了

2、缓冲字符输出流  类名:BufferedWriter      特点:写 (对文件进行写入操作)  父类:Writer    (比基本输出流多了

转换流

1、InputStreamReader     特点:读 (对文件进行读取操作) 输入流    父类:Reader

2、OutputStreamWriter    特点:写 (对文件进行写入操作) 输出流    父类:Writer

打印流

1、PrintStream        特点:写 (对文件进行写入操作)     底层:基本字节流

2、PrintWriter          特点:写 (对文件进行写入操作)     底层:基本字符流

基本字节流和基本字符流的区别:

1、字节流可以读写任何文件      字符流只能读取普通文件

2、读写文本文件尽量使用字符流   这要比字节流效率高

3、读写媒体文件用字节流

4、基本字节流没有缓冲区

5、基本字符流有缓冲区  默认大小为8k (不能指定缓冲区大小)

6、字节流是一个一个字节读  效率比较低  虽然可以读取各种各样的文件但是 最适用于读取媒体文件

7、字符流是一个一个字符读 效率比较高

缓冲流和基本流的区别:

1、缓冲流效率要高于基本流

2、缓冲字符流弥补了基本字符流不能设置缓冲区大小的缺口

3、缓冲字节流和基本字节流相比   建议使用基本字节流

4、缓冲字符流和基本字符流相比  建议使用缓冲字符流

转换流的作用

转换流的作用主要是解决在进行读写操作时出现的中文乱码  (java默认处理文件时是gbk  当将文本文件保存为utf-8的时候 进行读写操作就会出现中文乱码)

API图

a41e50c45c08a8e86ce5f9ccd4374193.png

用法总结:

1、多媒体类    用字节流

读:基本字节输入流

写:基本字节输出流

2、文件文件   用字符流

读:建议用字符缓冲输入流

写:建议用字符缓冲输出流    如果写的数据多种多样的建议用打印流(PrintStream、PrintWriter)

3、比较明显意图的数据流

读写对象只能用对象流(ObjectInputStream、ObjectOutputStream)

如果在读写文件的过程中遇到中文乱码只能用转换流(InputStreamReader、OutputStreamWriter)

简单实例:

复制较小文件代码:

复制较大文件代码:

利用递归查找某个目录下的视频文件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/564245.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++ 基类和派生类的析构函数

和构造函数类似,析构函数也不能被继承。与构造函数不同的是,在派生类的析构函数中不用显式地调用基类的析构函数,因为每个类只有一个析构函数,编译器知道如何选择,无需程序员干涉。 另外析构函数的执行顺序和构造函数…

素描java字母_进行Java基本GUI设计需要用到的包是

【单选题】下列各类计算机程序语言中,不属于高级程序设计语言的是【填空题】以下程序从名为 filea.dat 的文本文件中逐个读入字符并显示在屏幕上。请填空。 #include main() { FILE *fp; char ch; fp fopen( 【3】 ); ch fgetc(fp); while (!feof(fp)) { putchar(ch); chfget…

C++ 多继承

派生类都只有一个基类,称为单继承(Single Inheritance)。除此之外,C也支持多继承(Multiple Inheritance),即一个派生类可以有两个或多个基类。 多继承的语法也很简单,将多个基类用逗…

C++ 向上转型

在 C 中经常会发生数据类型的转换,例如将 int 类型的数据赋值给 float 类型的变量时,编译器会先把 int 类型的数据转换为 float 类型再赋值;反过来,float 类型的数据在经过类型转换后也可以赋值给 int 类型的变量。 数据类型转换…

java拆分任意五位数_五位数拆分出各位 - osc_foo7glsg的个人空间 - OSCHINA - 中文开源技术交流社区...

5、输入一个五位数,输出一个反转的五位数输入-》12345 输出-》54321//这是五位数字拆分方法。System.out.println("请输入五位数的数字:"); // 比如:12345int g1num%10;int g2num/10%10;int g3num/100%10;int g4num/1000%10;int g…

C++ 纯虚函数和抽象类

C中,可以将虚函数声明为纯虚函数,语法格式为: virtual 返回值类型 函数名 (函数参数) 0;纯虚函数没有函数体,只有函数声明,在虚函数声明的结尾加上0,表明此函数为纯虚函数。 最后的0并不表示函数返回值为…

python中保留两位小数的编写程序_P081 保留两位小数

所属年份:2011.3;2011.9请编一个函数 float fun(double h),该函数的功能是:使变量h中的值保留两位小数,并对第三位进行四舍五入(规定h中的值为正数)。例如,若h 值为1234.567,则函数返回1234.570000&#xf…

C++ 获取类型信息

typeid 运算符用来获取一个表达式的类型信息。类型信息对于编程语言非常重要,它描述了数据的各种属性: 对于基本类型(int、float 等C内置类型)的数据,类型信息所包含的内容比较简单,主要是指数据的类型。对…

java 8 lambda 申明_2019-02-03——Java8 Lambda

一.认识LambdaLambda表达式专门针对只有一个方法的接口(即函数式接口)lambda表达式的基本格式为(x,y...)—>{表达式...};(1)可选类型声明:不需要声明参数类型,编译器可以统一识别参数值。(2)可选的参数圆括号:一个参数无需定义圆括号&…

C 数字排列组合

编辑程序让任意四个数字排列组合并且每一个排列组合的数字都不相同。 结果展示 完整代码 #include <stdio.h> //定义头文件 int main() {int i,j,k;printf("\n");for(i1;i<5;i){ //三重循环 for(j1;j<5;j){for(k1;k<5;k){ //确保 i j k 位置不同 i…

java 汇总_java基础汇总

1.关于Http和Hibernatet里面Session的区别HttpSessionHttpSession&#xff1a;是一个抽象接口&#xff0c;J2EE的Web程序在运行的时候&#xff0c;会给每一个新的访问者建立一个HttpSession&#xff0c;这个Session是用户身份的唯一标示&#xff0c;WEB 会话跟踪用的。【注:是容…

C 天数的计算

根据程序提示输入某年某月某日&#xff0c;判断这一天是这一年的第几天&#xff0c;并进行输出显示。 效果演示 完整代码 #include <stdio.h> int main() {int day,month,year,sum,leap;printf("\n请输入年、月、日&#xff0c;格式为&#xff1a;年,月,日&#…

java+filter加密_Javaweb之Filter案例练习-自动登录问题和MD5加密

自动登录问题和MD5加密前面已经完成了Filter的自动登录&#xff0c;但是有问题&#xff0c;我们在web.xml中Filter的url-mapping中配置的规则是/*, 也就是这个网站的所有请求都拦截。这肯定不合适。我们本来访问/login.jsp&#xff0c;本来就是去登录&#xff0c;结果也进行了拦…

C 从小到大排序

将数字按从小到大的的顺序进行排序输出&#xff0c;根据提示输入相应的数字个数&#xff0c;每输入一个数字要进行换行然后输入下一个数字&#xff0c;当三个数字完全输入之后点击回车&#xff0c;程序会根据从大到小的顺序进行数字的排序输出。 效果演示 完整代码 #include…

java class文件常量池_JAVA程序员谈谈class文件结构中的常量池-class文件

常量的类型有12种CONSTANT_Utf8_info1字面量UTF-8编码的字符串CONSTANT_Integer_info3字面量整型字面量CONSTANT_Float_info4字面量浮点型字面量CONSTANT_Long_info5字面量长整型字面量CONSTANT_Double_info6字面量双精度浮点型字面量CONSTANT_Class_info7符号引用类或接口的符…

C 输出图案

在C语言中使用 * 号输出各种图案。 用 * 输出字母C 效果 完整代码 #include <stdio.h>int main() {printf("用 * 号输出字母 C\n");printf(" ****\n");printf("*\n");printf("*\n");printf(" ****\n");} 用 * 输出…

C 多数排序

使用C语言编写程序对多个数字进行排序输出的操作。 根据提示输入十个数字并按照从小到大的顺序进行输出显示。 效果 完整代码 #include<stdio.h> #define N 10 int main() {int i,j,a[N],temp;printf("请输入 10 个数字&#xff1a;\n");for(i0;i<N;i)s…

java httppost wsdl_Java使用HttpUrlConnection调用webService(wsdl)

首先需要下载工具https://pan.baidu.com/s/1XQ-VubxcPFoqwGm7wierHg下载成功后解压打开exe程序&#xff0c;在wsdl endpoint中输入你wsdl的地址&#xff0c;点击get&#xff0c;等待一小会后会跳到invoke标签下的界面点击某个方法&#xff0c;例如上图的login&#xff0c;可以看…

php判断一个字符串是否为纯数字,php判断变量是否为纯数字字符串的方法

在php中有时候需要判断一个变量的值是否为数字或是否为数字字符串&#xff0c;而php中也提供了一个很好用的内置函数 is_numeric()&#xff0c;可以很轻松的来检测变量。php is_numeric() 函数介绍is_numeric()&#xff1a;检测一个php的变量是否为数字或数字字符串。语法&…

C 反向输出

使用C语言的递归方法对输入的字符进行反向输出。 效果 完整代码 #include <stdio.h>int main() {int i5;void palin(int n);printf("请输入5个字符\40:\40");palin(i);printf("\n"); } void palin(n) int n; {char next;if(n<1) {nextgetchar(…