# I/O

# InputStream ByteArrayOutputStream String byte[] 互相转换

这四者的直接相互转换关系如下图所示。其中 OutputStream 仅支持 ByteArrayOutputStream 转换为其他类,因为只有该类将内容输出到了内存,其他 OutputStream 可能已经将内容输出到文件或其他地方,无法再次获取其内容。

InputStream ByteArrayOutputStream String byte[] 互相转换

实际代码编写时,按照上图所述步骤编写即可。

# 多线程

class MyThread implements Runnable {
    private Thread thread;

    MyThread() {
    }

    public void start() {
        if (thread == null) {
            thread = new Thread(this);
            thread.start();
        }
    }

    @Override
    public void run() {
        try {
            System.out.println("hello world");
            Thread.sleep(50);
            System.out.println("goodbye");
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }   
    
    public void interrupt() {
        if (thread != null) {
            thread.interrupt();
        }
    }
}

public class Main {

    public static void main(String[] args) {
        MyThread R1 = new MyThread();
        R1.start();
        R1.interrupt();
        
        MyThread R2 = new MyThread();
        R2.start();
    }
}