JAVA IO流和线程

一.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从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。
  • FileReaderInputStreamReader类继承而来,该类按字符读取流中数据。
BufferedReaderFileReader的常用方法
BufferedReader
readLine()读取一个文本行
close()关闭该流并释放与之关联的所有资源
FileReader
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()方法

  1. 复制Word 图片用字节流复制
  2. TXT文本文档,JAVA文件可以用字符流
  3. 日期格式:yyyy/MM/dd  HH:mm:ss

yyyy代表年份

月份必须大写MM

HH大写表示24小时制,小写表示12小时制

mm表示分钟




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值