IO流的学习

IO流的学习,第1张

IO流的学习

1.IO流的概述:用来进行设备间的数据传输问题

                                上传文件和下载文件

                        Java对数据的 *** 作是通过流的方式

                        Java用于 *** 作的对象都在IO包中

2、IO流的分类:

                流向: 输入流 读取数据

                            输出流 写出数据

                数据类型: 字节

                                                字节流输入流 读取数据 InputStream

                                                 字节流输出流 写出数据 OutputStream

                                    字符流

                                                字符流输入流 读取数据 Reader

                                                字符流输出流 写出数据 Writer

        如果 *** 作的数据是文本数据就用字符流,用Windows自带的记事本,能读懂就是用字符流,读不懂就用字节流,什么都不知道就用字节流

          注意:没有明确说明按哪种分类,默认按数据类型

3.OutputStream 该流是一个抽象类,不能实例化,找一个子类

        注意:每种基类的子类都是以父类名作为后缀名

                        XxxOutputStream

                        XxxInputStream

                        XxxReader

                        XxxWriter

        FileOutputStream的构造方法:

                        FileOutputStream(File file)

                        FileOutputStream(String name)

4.字节输出流 *** 作步骤

                (1)创建字节流输出流对象

                                调用系统功能去创建文件

                                创建fos对象

                                把fos对象指向这个文件

                (2)写数据

                (3)释放资源 关闭此文件输出流并释放此流有关的所有系统资源

                                fos.close();

                为什么一定要.close();

                                让流对象变成垃圾,可以被垃圾回收器回收

                                通知系统去释放该文件相关的资源

5.字节流写数据的方式:

                public void write(int b)

                public void write(byte[] b)

                public void write(byte[] b ,int off,int len)

6.如何实现数据的换行

                写入换行符号 windows:rn

                                        Linux:n

                                        Mac:n

        常见高级记事本是可以识别任意换行符号的

7.如何实现数据的追加写入?(写入文件末尾,而不是文件的开始处)

        用构造方法第二个参数是turn的情况即可

        FileOutputStream fos=new FileOutputStream(“fos.tex”,turn);

8.字节输入流 *** 作步骤

        (1)创建字节输入流对象

        (2)调用reader()方法读取数据,并把数据显示在控制台

                读取数据的方式:

                        int reader() 一次读取一个字节

                        int reader(byte[] b) 一次读取一个字节数组

        (3)释放资源

9.字节流复制文本文件

                数据源:从哪来

                目的地:到哪去

public static void main(String[] args) throws IOException {
		//封装数据源
		FileInputStream fis=new FileInputStream("a.txt");
		//封装目的地
		FileOutputStream fos=new FileOutputStream("b.txt");
		//复制数据
		//int by=0;
		//while((by=fis.read())!=-1) {
		//	fos.write(by);
		//}
		byte[] bys=new byte[1024];
		int len=0;
		while((len=fis.read(bys))!=-1) {
			fos.write(bys,0,len);
		}
		//释放资源
		fos.close();
		fis.close();
	}

10.计算机如何识别什么时候该把两个字节转化为一个中文呢?

        在计算机中文的存储分两个字节

                第一个字节肯定是负数

                第二个字节常见的是负数,可能有正数。但是没影响

11.字节缓冲流

        字节缓存输出流

                BufferedOutputStream(写)

        字节缓存输入流

                BufferedInputStream(读)

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5708307.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存