**JAVA学习笔记Day11

IO流

用于文件传输,先进先出原则传输数据
IO流的分类:
按照流向分:输入流,输出流
按操作单元分:字节流,字符流
按功能分:节点流,功能流
分类之间是相辅相成的,互不冲突

字节流:重点 功能属:节点流
InputStream 字节输入流
此抽象类是表示字节输入流的所有类的超类。
FileInputStream 从文件系统中的某个文件中获得输入字节。OutputStream 字节输出流

public class ByteDemo01 {
	public static void main(String[] args) throws IOException {
		//1.建立联系
		File src=new File("D:/test.txt");
		//2.选择流
		InputStream is=new FileInputStream(src);
		//3.操作  读入
		/*read() 每次从输入流中读入一个字节的内容,想要读入多个 手动一个字节一个字节读入
		 * int num=is.read();
		System.out.println((char)num);
		
		System.out.println((char)(is.read()));
		System.out.println((char)(is.read()));*/
		
		//重复读取   不确定次数
		int num=-1;
		while((num=is.read())!=-1){
			System.out.println((char)num);
		}
		//4.关闭
		is.close();
	}
}

字符流:属功能流,能够读取纯文本的内容
Reader 字符输入流
Write 字符输出流
FileReader 文件字符输入流
FileWrite 文件字符输出流

public class CharDemo01 {
	public static void main(String[] args) throws IOException {
		//1.选择流
		Reader read=new FileReader("D:/hehe.txt");
		//2.准备卡车
		char[] car=new char[1024];
		//3.读入
//		System.out.println((char)(read.read()));
		int len=-1;
		while((len=read.read(car))!=-1){
			System.out.println(new String(car,0,len));
		}
		//4.关闭
		read.close();
	}
}

缓冲流:提高性能
字符缓冲流:
bufferedReader输入缓冲流 -->新增方法
readLine()一次读一行字符
bufferedWriter输出缓冲流 -->新增方法
newLine写出换行符`

包裹节点流,在节点流上–>节点流|处理流
作用:增强功能,提高性能,只能在节点流之外才能使用,不能代替节点流。

Data流:基本数据类型流,读入写出带有数据类型的数据和字符串数据
DataOutputStream数据输出流–>新增方法:
read xxx()
DataInputStream数据输入流 -->新增方法:
Write xxx()

public class DataDemo {
	public static void main(String[] args) throws IOException {
//		write("D:/haha.txt");
		read("D:/hehe.txt");
	}
	
	//读取带有基本数据类型+字符串的数据
	public static void read(String pathname) throws IOException{
		//1.输入流
		DataInputStream in=new DataInputStream(new BufferedInputStream(new FileInputStream(pathname)));
		//2.读入   读入和写出顺序要保持一致
		int i=in.readInt();
		double d=in.readDouble();
		boolean b=in.readBoolean();
		String s=in.readUTF();
		System.out.println(i+"-->"+d+"-->"+b+"-->"+s);
		//3.关闭
		in.close();
	}
	
	//写出带有基本数据类型的数据
	public static void write(String pathname) throws IOException{
		//1.输出流  可以写出基本数据类型的数据
		DataOutputStream out=new DataOutputStream(new BufferedOutputStream(new FileOutputStream(pathname)));
		//2.准备数据
		int i=123;
		double d=123.123;
		boolean b=false;
		String s="哈哈";
		//3.写出
		out.writeInt(i);
		out.writeDouble(d);
		out.writeBoolean(b);
		out.writeUTF(s);
		//4.刷出
		out.flush();
		//5.关闭
		out.close();
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值