JavaSE-day20

流(IO流)

概念:传输数据的管道
作用:传输数据
将数据从其他地方,如内存,文件,电脑等地方传输给程序

将数据从程序传输到别的地方,如内存,文件,电脑等地方

分类

按照流向分类

输入流:
	将数据从其他地方,如内存,文件,电脑等地方传输给程序
输出流:
	将数据从程序传输到别的地方,如内存,文件,电脑等地方

按照传输的数据最小单位分类

字节流:
	传输的数据最小单位是byte
	可以传输任何一种数据
字符流:
	传输的数据最小单位是char
	只能传输文本内容,但不能传输音频,视屏,图片等数据

按功能分类

节点流:
	不会对数据加工
过滤流:
	会对数据加工

字节流

InputStream:所有字节输入流的父类,是一个抽象类(无法直接创建对象)
OutStream:  所有字节输入流的父类,是一个抽象类 (无法直接创建对象)
常用的子类
	文件字节流
		作用:
			将文件数据输入(读入)到程序中
			或
			将程序中的数据输出(写出)到文件中
		FileInputStream:将文件数据输入(读入)到程序中的流
		例1
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
/**
 * 文件字节码输入流(FileInputSream)
 * 		将电脑上或其他地方的文件(输入)读入到程序中
 * 		
 * 		下例为读取电脑上的一篇文档到程序
 */
public class Test01 {
	public static void main(String[] args) throws IOException {
		FileInputStream stream = new 	
				FileInputStream("C:\\Users\\LI\\Desktop\\我的口袋\\周测\\test_3.txt");
		
		byte[] arr = new byte[1024];
		int len = 0;
		
		while ((len = stream.read(arr)) != -1) {
			//将字节码数组转为字符串
			String str = new String(arr,0,len);
			System.out.println(str);
		}
		//关闭流
		stream.close();
	}
}

		FileOutputStream: 将程序中的数据输出到文件中的流
		例2
import java.io.FileOutputStream;
import java.io.IOException;
/**
*	文件字节码输出流(FileOutStream)
*		将程序中的数据输出到文件中的流
*	
*	下例为将程序中的一段字符串数据输出(写入)到文件中
*/	
public class Demo03 {
	public static void main(String[] args) throws IOException {
		/**
		 * 	在创建时
		 * 		如果指定的文件不存在则会创建该文件
		 * 		如果指定的文件存在,那么会先删除原来的文件,再创建
		 */
//		FileOutputStream fos = new FileOutputStream(一参,二参);
		/**
		 * 1参:要输出到的文件位置
		 * 2参:是否给原内容追加,true表示追加,false覆盖
		 * 	在创建时
		 * 		如果指定的文件不存在则会创建该文件
		 * 		如果指定的文件存在,则直接使用,并将写入的内容追加到原内容的尾部
		 */
		FileOutputStream fos = new FileOutputStream("D://1.txt", false);
		
		String str = "这是通过程序写入的内容";
		//将字符串转化为字节码数组
		byte[] bs = str.getBytes();
		//使用输出流给文件中写入内容
		//参数:要写入到文件中的字节码数组
		fos.write(bs);
		//冲刷
		fos.flush();
		//关流
		fos.close();
		System.out.println("OVER");
	}
}

例3
	拷贝文件
/**
 * 文件的拷贝
 */
public class Demo04 {
	public static void main(String[] args) throws IOException {
		/**
		 * 分析:
		 * 		文件输入流
		 * 			将文件中的内容读取到程序中
		 * 		文件输出流
		 * 			将程序中的数据输出到文件中
		 */
		FileInputStream fis = new FileInputStream("D:\\Java备课\\西安前8周week_test\\前8周week_test\\test_1.txt");
		FileOutputStream fos = new FileOutputStream("D:\\第一周考试题.txt");
		byte[] b = new byte[1024];
		int len = 0;
		while((len = fis.read(b)) != -1) {
			fos.write(b, 0, len);
			fos.flush();
		}
		fos.close();
		fis.close();
	}
}

InputStream提供的方法(字节流)

int read();
	读取到的数据,返回值就是读取到的数据
int read(byte b[ ]);

	读取多个数据到数组b中,返回值就是该数组的字节长度
	注意:如果返回值为-1表示读取结束
int read(byte b[ ],int off,int len);
	读取多个数据到数组b中,从off位置开始存放,存放len个字节数据,返回值是该数组的字节长度
 void close();
 	关闭流

OutStream提供的方法(字节流)

void write(int b);
	输出一个字节数据,参数就是输出的字节数据
void write(byte b[ ]);
	输出一组字节数据,参数就是输出的字节数据数组
void write(byte b[ ] ,int off,int len);
	将参数b中的数据从off位置开始向外输出len个
void flush();
	冲刷,保证管道没有残留的数据
 void close();
 	关闭流


		内存流
	将数据读取到内存中,或将数据从内存中取出
		ByteArrayInputStream
		ByteArrayOutputStream
			toByteArray();获取内存流连接的内存中的数据
缓冲流
	作用:提高读写效率
		BufferedInputStream
		BufferedOutputStream
			注意:该流是过滤流
对象流
	作用:将对象存储到文件中,获将文件中存储的对象读取到程序中
		ObjectInputStream
		ObjectOutputStream
		注意:
			1、static修饰的属性不能被序列化
			2、版本号除了能让程序员与程序员沟通外,其他没有任何作用
			3、存储的对象中的所有属性的数据类型都必须实现Serializable接口
			4、transient修饰的属性称为瞬时属性,不参与序列化
标准输出流
	PrintStream

字符流

特点:传输的最小单位是char(字符)
父类
	Reader(抽象类)
		read();
		read(char[ ] b);
		read(char[ ] b,int off,int len);
		close();
	Writer(抽象类)
		write(int b);
		write(char[ ] b);
		write(char[ ] b ,int off,int len);
		flush();
		close();
常用子类
	文件流
		Filereader
		Filewriter
	缓冲流
		BufferedReader
			特有方法:readline();  读取一行
	转换流
		InputStreamReader
		OutputStreamWriter

文件(file)

文件过滤器(filefilter)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值