二次元码农的成长之路I/O复习1

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二次元码农的成长之路I/O复习1相关的知识,希望对你有一定的参考价值。

一、什么是流

它代表了有能力产出数据的对象或者有能力接受数据的对象

java类库的I/O由输入输出两部分组成

二、 inputStream InputStreamReader Read的关系

1、inputStream类型

作用:是用来表示那些不同数据源产出的数据输入的类

数据源可以是字节数组 String 对象 文件 管道 internet等

2Reader与inputStream区别

Reader与inputStream最大的区别就是Reader 面向字符 inputStream面向字节

如果要从字节转字符就得有个适配器,所谓适配器举个例子 你去美国旅游你带的手机充电器是220V 而美国的标准电压是110V你要在你的充电器上面套一个东西来适应美国电压 这就是适配器

设计模式中有适配器模式 而InputStreamReader就是这个适配器也应用了适配器模式

2 InputStreamReader与StringBuffer读取文件内容区别

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class Review {
	static String file = "C:\\practice\\think in java\\src\\2121.txt";
	
	public static void main(String[] args) throws IOException {
		String s;
		StringBuffer sb=new StringBuffer();
		
		File f =new File(file);
		try {
			BufferedReader br =new BufferedReader(new FileReader(file));
			while((s=br.readLine())!=null)
				sb.append(s);
			System.out.println(sb.toString());
			
		} catch (FileNotFoundException e) {
			// TODO 自動生成された catch ブロック
			e.printStackTrace();
		}
		
	}

}

 这是BufferedReader去取文件

public class Review2 {
	static String file = "C:\\practice\\think in java\\src\\2121.txt";
	public static void main(String[] args) throws FileNotFoundException {
		
		FileInputStream is=new FileInputStream(file);
		InputStreamReader ir=new InputStreamReader(is);
		int c;
		try {
			while((c=ir.read())!=-1){
				System.out.print((char)c);
			}
		} catch (IOException e) {
			// TODO 自動生成された catch ブロック
			e.printStackTrace();
		}

	}

}

 这是InputStreamReader的

可以看出来两者代码是有区别的

本质上是 InputStreamReader是直接读取内存一个字符一个字符读取

BufferedReader是从缓冲区读取

 

以上是关于二次元码农的成长之路I/O复习1的主要内容,如果未能解决你的问题,请参考以下文章

Spark成长之路(12)-Gradient Descent

Python大神成长之路: 第二次学习记录

工程师成长之路

开发成长之路(13)-- Linux网络服务端编程(通识篇)

开发成长之路(13)-- Linux网络服务端编程(通识篇)

java复习---I/O