《Java基础入门第2版》--黑马程序员 课后答案及其详解 第7章 I/O流

一、填空题

1、	字节流、字符流
2、	Channel、Buffer
3、	InputStreamReader、OutputStreamWriter
4、	Buffer、Channel、Selector
5、RandomAccesseFile

二、判断题

1、	错  2、对   3、对  4、对  5、错

三、选择题

1、AB   2、C   3、AB    4、A  5、B 

四、简答题

1、Java程序通过I/O流来完成输入和输出,流是输入或输出信息的抽象。流通过Java的输入/输出系统与外设连接进行数据通信。流是抽象的对象,具体实现代码在java.io包中。

2、字节流的两个基类是InputStream和OutputStream,字符流的两个基类是Reader和Writer,它们都是Object类的直接子类,字节流是处理以8位字节为基本单位的字节流类;Reader和Writer类是专门处理16位字节的字符流类。

3、Java中的NIO是为替代传统标准的I/O而出现的。与标准的IO相比,Java NIO提供了一种与I/O不同的工作方式。NIO采用内存映射文件的方式来处理输入/输出,它将文件或文件的一段区域映射到内存中,这样就可以像访问内存一样来访问文件了。
在标准IO中,使用的是字节流和字符流,而在NIO中,使用的是通道(Channel)和缓冲区(Buffer)。数据总是从通道读入缓冲区,或从缓冲区写入通道。
NIO主要有三大核心部分:Buffer、Channel和Selector。其中Buffer可以被看成是一个容器,其本质是一个数组缓冲区,读入或写出到Channel中的所有对象都会先放在Buffer中;Channel是对传统的输入/输出的模拟,在NIO中,所有的数据都需要通过通道流的形式传输;Selector(选择器)用于监听多个通道的事件(例如:连接打开、数据到达等),主要用于多线程处理。

五、编程题

1.import java.io.*;
public class Test01 {
    
    
	public static void main(String[] args) throws Exception {
    
    
		// 字节流拷贝
		FileInputStream in = new FileInputStream("E:/src.txt");
		FileOutputStream out = new FileOutputStream("E:/des1.txt");
		byte[] buf = new byte[1024];
		int len;
		while ((len = in.read(buf)) != -1) {
    
    
			out.write(buf, 0, len);
		}
		in.close();
		out.close();
		// 字符流拷贝
		BufferedReader bf = new BufferedReader(new FileReader("E:/src.txt"));
		BufferedWriter bw = new BufferedWriter(new FileWriter("E:/des2.txt"));
		String str;
		while ((str = bf.readLine()) != null) {
    
    
			bw.write(str);
			bw.newLine();
		}
		bf.close();
		bw.close();
	}
}
2.import java.io.*;
public class Test02 {
    
    
	public static void main(String[] args) throws Exception {
    
    
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String password = "";
		boolean b = false;
		for (int i = 0; i < 5; i++) {
    
    
			System.out.println("请输入密码:");
			password = br.readLine();
			if (password.equals("123456")) {
    
    
				System.out.println("恭喜你进入游戏");
				b = true;
				break;
			}
		}
		if (!b) {
    
    
			System.out.println("密码错误,游戏结束");
			System.exit(0);
		}
	}
}

六、原题及其解析

暂无。

猜你喜欢

转载自blog.csdn.net/hypertext123/article/details/109314741