1:什么是IO流?
流是一种抽象概念,它代表了数据的无结构化传递。按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列。从流中取得数据的操作称为提取操作,而向流中添加数据的操作称为插入操作。用来进行输入输出操作的流就称为IO流。换句话说,IO流就是以流的方式进行输入输出。
2:IO流分几类?
字节流和字符流
字节流包含:InputStream和OutputStream
字符流包含:Reader和Writer
3:什么是字节流?什么是字符流?
“字节流”用来读写8位二进制的字节。
“字符流”用来读写16位二进制字符。
4:字节流与字符流的区别?
字节流与字符流主要的区别是他们的的处理方式
字节流是最基本的,采用ASCII编码,所有的InputStream和OutputStream的子类都是,主要用在处理二进制数据,它是按字节来处理的
但实际中很多的数据是文本,又提出了字符流的概念,采用Unicode编码.它是按虚拟机的encode来处理,也就是要进行字符集的转化
这两个之间通过 InputStreamReader,OutputStreamWriter来关联,实际上是通过byte[]和String来关联
5:字符流常用的分类有哪些?
6:实现文件复制的思想和步骤是什么?
package com.lenovo.demo;
import java.io.FileOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
public class Test2 {
public static void main(String[] args) {
FileInputStream input = null;
FileOutputStream output = null;
try {
input = new FileInputStream("D:\\Lenovo.txt");
output = new FileOutputStream("D:\\Lenovo2.txt");
int n;
do {
n = input.read();
output.write(n);
} while(n != -1);
}catch (FileNotFoundException e) {
e.printStackTrace();
}catch (IOException e ) {
e.printStackTrace();
}finally {
try {
input.close();
output.close();
}catch (IOException e) {
e.printStackTrace();
}
}
}
}
7:如何使用字符流进行文件读写?
package com.lenovo.demo;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
public class Test5 {
public static void main(String[] args){
int count = 0;
FileReader reader = null;
BufferedReader breader = null;
BufferedWriter writer = null;
try {
reader = new FileReader("D:\\lenovo.txt");
writer = new BufferedWriter(new FileWriter("D:\\lenovo.txt"));
breader = new BufferedReader(reader);
String temp = "";
while((temp=breader.readLine())!= null) {
writer.write(temp);
writer.newLine();
}
writer.flush();
System.out.println("共循环"+count+"次");
}catch (FileNotFoundException e) {
e.printStackTrace();
}catch (IOException e) {
e.printStackTrace();
}finally {
try {
breader.close();
writer.close();
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}