一.IO流
1.什么是IO流
源于UNIX中管道(pipe)的概念,在UNIX中,管道是一条不间断的字节流,用来实现程序或进程的通信,或读写外围设备,外部文件等。
2.IO流分为几类
1.根据处理数据类型的不同分为:字符流和字节流
2.根据数据流向不同分为:输入流和输出流
字节流包含InputStream和OutputStream 字符流包含Reader和Writer
(Input)输入流:输入流指的是将数据以字符或字节形式从外部媒介比如文件、数据库等读取到内存中。
通过JAVA程序读取硬盘上的某个文件内容就需要使用输入流。
(Output)输出流:输出流指的是将内存中的数据写入外部媒介。
通过JAVA程序将内容写入到硬盘上的某个文件就需要使用输出流。
3.什么是字节流?什么是字符流?
字节流:字节流是由字节组成的,字节流是最基本的,所有的InputStream和OutputStream的子类都是字节流,主要用在处理二进制数据,它是按字节来处理的。
字符流:字符流是由字符组成的,Java里字符由两个字节组成,所有的Reader和 Writer的子类都是字符流,主要用在处理文本内容或特定字符。
4.字节流与字符流的区别
- 读写的时候一个是按字节读写,一个是按字符。
- 需要对内容按行处理,一般会选择字符流。
- 只是读写文件,和文件内容无关(下载、复制等),一般选择字节流。
5.字符流的常用类
字节流常用类:InputStream,OutputStream
字符流常用类:Reader,Writer
FileInputStream的常用方法:
1.read() 从此输入流中读取下一个数据字节。
2.close() 关闭此输入流并释放与此流关联的所有系统资源。
Reader子类:
- BufferedReader从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。
- FileReader从InputStreamReader类继承而来,该类按字符读取流中数据。
readLine() | 读取一个文本行 |
close() | 关闭该流并释放与之关联的所有资源 |
read() | 读取单个字符 |
close() | 关闭该流并释放与之关联的所有资源 |
6.实现文件复制的思路和步骤是什么?
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class File05 {
public static void main(String[] args) {
BufferedWriter bf =null;
BufferedReader c = null;
String n= "";
try {
bf = new BufferedWriter(new FileWriter("D:\\wegame\\Lenovo.txt"));
c = new BufferedReader(new FileReader("D:\\wegame\\lenovo111.txt"));
while((n=c.readLine())!=null) {
bf.write(n);
bf.flush();
}
} catch (Exception e) {
}finally {
try {
c.close();
bf.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
多线程
1.为什么要学习多线程?
编程世界里“并行执行效率高”
2.什么是进程?什么是线程?什么是程序?
程序不等与进程,但是程序与进程是一一对应的
进程是程序执行任务时的最小单元
3.使用多线程的两种方法
- 继承Thread类,重写run()方法
- 实现Runnable接口,并实现该接口的run()方法
yyyy代表年份 月份必须大写MM HH大写表示24小时制,小写表示12小时制 mm表示分钟 |