IO流(二)

递归(理解)

		方法定义中调用方法本身的现象

2、递归的注意事项

		A:要有出口,否则就是死递归
		B:次数不能过多,否则内存溢出
		C:构造方法不能递归使用

3、递归的案例

		A:递归求阶乘
		B:兔子问题
		C:递归输出指定目录下所有指定后缀名的文件绝对路径
		D:递归删除带内容的目录(小心使用)

IO流(掌握)

	IO用于在设备间进行数据传输的操作

1、分类

	A:流向
			输入流	读取数据
			输出流	写出数据
		B:数据类型
			字节流
					字节输入流
					字节输出流
			字符流
					字符输入流
					字符输出流
		注意:
			a:如果我们没有明确说明按照什么分,默认按照数据类型分。
			b:除非文件用windows自带的记事本打开我们能够读懂,才采用字符流,否则建议使用字节流。

2、FileOutputStream写出数据

		A:操作步骤
			a:创建字节输出流对象
				FileOutputStream构造方法
					FileOutputStream(File file);
					FileOutputStream(String Path);
			b:调用write()方法
				public void write(int b)	//写入一个字节
				public void write(byte[] b)	//写入一个字节数组
				public void write(byte[] b,int off,int len)	//写入字节数组的一部分
			c:释放资源

		B:代码体现:
			FileOutputStream fos = new FileOutputStream("fos.txt");

			fos.write("hello".getBytes());

			fos.close();

		C:异常处理版代码
			try {
				// fos = new FileOutputStream("z:\\fos4.txt");
				fos = new FileOutputStream("fos4.txt");
				fos.write("java".getBytes());
			} catch (FileNotFoundException e) {
				e.printStackTrace();
			} catch (IOException e) {
				e.printStackTrace();
			} finally {
				// 如果fos不是null,才需要close()
				if (fos != null) {
					// 为了保证close()一定会执行,就放到这里了
					try {
						fos.close();
					} catch (IOException e) {
						e.printStackTrace();
					}
				}
			}

		D:要注意的问题?
			a:XxxOutputStream继承IOException(两种处理方式)
			b:创建字节输出流对象做了几件事情?
				1) 调用系统功能区创建文件
				2) 创建fos对象
				3) 把fos对象指向这个文件
			c:为什么要close()?
				关闭此文件流并释放与此有关的所有系统资源
			d:如何实现数据的换行?
				fos.write("\r\n".getBytes());
			e:如何实现数据的追加写入?
				FileOutputStream fos = new FileOutputStream("fos.txt",true);

3、FileInputStream读取数据

		A:操作步骤
			a:创建字节输入流对象
			b:调用read()方法
			c:释放资源

		B:代码体现:
			FileInputStream fis = new FileInputStream("fos.txt");

			//方式1
			int by = 0;
			while((by=fis.read())!=-1) {
				System.out.print((char)by);
			}

			//方式2
			byte[] bys = new byte[1024];
			int len = 0;
			while((len=fis.read(bys))!=-1) {
				System.out.print(new String(bys,0,len));
			}

			fis.close();

4、字节缓冲区流

		A:BufferedOutputStream
			BufferedOutputStream bos = new BufferedOutputStream(
				new FileOutputStream("bos.txt"));
		B:BufferedInputStream

5、案例(4种实现)

		A:复制文本文件
		B:复制图片
		C:复制视频
时间: 2024-08-29 20:15:50

IO流(二)的相关文章

Java IO流(二)

目录 Java IO流(二) 7. 字节缓冲流 7.1 概述 7.2 BufferedOutputStream类 7.3 BufferedInputStream类 8. 文件复制练习(增强版 使用缓冲流) 9. 字符缓冲流 9.1 BufferedWriter类 9.2 BufferedReader类 10. 练习:文本排序 11. 转换流 11.1 字符编码和字符集 11.2 编码引出的问题 11.3 转换流的原理 11.4 OutputStreamWriter类 11.5 InputStre

Java学习IO流(二)

字节流复制文件 原理:读取一个已有的数据,并将这些读取到的数据写到另一个文件中 字节流通过单字节复制和字节数组赋值 package com.oracle.demo01; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class CopyDemo { public static void main(String[] args) throws IO

java io流二-字符流输入输出缓冲区

/* 字符写入缓冲流 缓冲区的出现时为了提高流的操作效率. 所以在创建缓冲区之前,必须要现有流对象. Writer对应BufferedWriter Reader对应BufferedReader 该缓冲区中提供了一个换行符方法,newLine(); */ import java.io.*; class BufferedWriterDemo { public static void main(String[] args) throws IOException { FileWriter fw=new

IO流(二)——BufferedReader和BufferedWriter

BufferedReader和BufferedWriter 字符流的缓冲区:缓冲区的而出现提高了对数据的读写效率对应类:BufferedWriter  BufferedReader缓冲区要结合流才可以使用,在流的基础上对流的功能进行了增强.实际上BufferedReader和BufferedWriter是对FileReader和FileWriter的装饰模式.BufferedWriter: bufw.newLine(); public class BufferedWriterDemo { pri

IO流(二):字节流及其缓冲流

一.IO概述 1.分类 1) 流向: 输入流 读取数据 输出流 写出数据 2)  数据类型: 字节流 字节输入流 读取数据 InputStream 字节输出流 写出数据 OutputStream 字符流  字符输入流 读取数据 Reader 字符输出流 写出数据 Writer 注意: 一般我们在探讨IO流的时候,如果没有明确说明按哪种分类来说,默认情况下是按照数据类型来分的. 每种基类的子类都是以父类名作为后缀名. XxxOutputStream XxxInputStream XxxReader

Java基础学习笔记二十 IO流

转换流 在学习字符流(FileReader.FileWriter)的时候,其中说如果需要指定编码和缓冲区大小时,可以在字节流的基础上,构造一个InputStreamReader或者OutputStreamWriter,这又是什么意思呢? OutputStreamWriter类 查阅OutputStreamWriter的API介绍,OutputStreamWriter 是字符流通向字节流的桥梁:可使用指定的字符编码表,将要写入流中的字符编码成字节.它的作用的就是,将字符串按照指定的编码表转成字节,

《二》Java IO 流的分类介绍

一.根据流向分为输入流和输出流: 注意输入流和输出流是相对于程序而言的. 输出:把程序(内存)中的内容输出到磁盘.光盘等存储设备中        输入:读取外部数据(磁盘.光盘等存储设备的数据)到程序(内存)中 综合起来:   二.根据传输数据单位分为字节流和字符流 上面的也是 Java IO流中的四大基流.这四大基流都是抽象类,其他流都是继承于这四大基流的.   三.根据功能分为节点流和包装流 节点流:可以从或向一个特定的地方(节点)读写数据.如FileReader. 处理流:是对一个已存在的

IO流(二)

一.IO流概述 1.定义:Java的IO流是实现输入输出的基础,它可以方便地实现数据的输入/输出操作. 2.流的分类: (1)按流向来分:输入流和输出流 (2)按操作的数据来分:字节流和字符流 (3)按流的角色来分:节点流和处理流 二.IO流类图 常用流分类: 通常来说,字节流的功能比字符流强大,因为计算机里所有的数据都是二进制的,而字节流可以处理所有的二进制文件,但如果使用字节流来处理文本文件,则需要将字节转换为字符,这增加了编程复杂度.所以有这样一个规则:如果操作的内容是文本,则考虑使用字符

java IO流(二)

 IO流主要用于硬板.内存.键盘等处理设备上得数据操作,根据处理数据的数据类型的不同可以分为:字节流(抽象基类为InputStream和OutputStream)和字符流(抽象基类为Reader和Writer).根据流向不同,可以分为:输入流和输出流.一般探讨IO流时,是按数据类型来分的. IO流的分类: 流向: 输入流  (读取数据) 输出流  (写出数据) 数据类型: 字节流  字节输入流(读取数据) InputStream 字节输出流 (写出数据)OutputStream 字符流 字符输入