1.什么是IO流?
流是一种抽象概念,它代表了数据的无结构化传递。按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列。从流中取得数据的操作称为提取操作,而向流中添加数据的操作称为插入操作。用来进行输入输出操作的流就称为IO流。换句话说,IO流就是以流的方式进行输入输出 。
2.IO流分为几类?
进(inputstream-字节/reader-字符)
出(outputstream/writer-字符)
3.什么是字节流?什么是字符流?
字节流是由字节组成的,不含边界数据的连续流。
字符流是由字符组成的。
4.字节流和字符流的区别?
在字节流中输出数据主要是使用OutputStream完成,输入使的是InputStream。 字节流可用于任何类型的对象。
在字符流中输出主要是使用Writer类完成,输入流主要使用Reader类完成。
读写时一个按照字节读一个按照字符读。
5.字符流的常用类有哪些?
Reader,Writer
6.实现文件复制的思路和步骤是什么?
文件的复制可以利用字节流或者字符流来执行
public class Demo3 {
public static void main(String[] args) {
FileInputStream input = null;
FileOutputStream output = null;
int n = 0;
try {
input = new FileInputStream("D:\\lenovo.txt");
output = new FileOutputStream("D:\\lenovo1.txt");
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.如何用字符流进行文件读写?
public class Demo5 {
public static void main(String[] args) {
int count = 0;
FileReader reader = null;
BufferedReader breader = null;
try {
reader = new FileReader("D:\\lenovo.txt");
breader = new BufferedReader(reader);
String temp = "";
while((temp = breader.readLine())!=null) {
System.out.println(temp);
count++;
}
System.out.println("共循环"+count+"次");
}catch (FileNotFoundException e) {
e.printStackTrace();
}catch (IOException e) {
e.printStackTrace();
}finally {
try {
breader.close();
reader.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}