一、实验内容:
1.分别通过Thread和Runnable创建线程。
(1). 自定义一个类Demo,使其继承Thread类。
1)在Demo类中重写run()方法,在方法编写一个for循环(循环10次),循环体内打印:当前线程名称:+当前循环次数。
2)编写测试类Test1,在Test1类的main()方法中,创建2个线程对象,分别命名为“蜘蛛侠”和“钢铁侠”,并执行线程对象的start()方法。
(2). 自定义一个类Demo,使其实现Runnable接口。
1)在Demo类中覆写run()方法,在方法编写一个for循环(循环10次),循环体内打印:当前线程名称:+当前循环次数。
2) 编写测试类Test2,在Test2类的main()方法中,创建一个Demo对象,利用Thread(Runnable target)构造方法创建2个线程对象,分别命名为“蜘蛛侠”和“钢铁侠”,并执行线程对象的start()方法。
2.编写一个HelloWorld.java,选择合适的输入输出流将源程序文件复制一份到“Test.txt”文件中、并同时将文件的内容打印到命令提示符窗口中。
二、实验代码:
实验三(一):
package 实验三;
//202056228杨丽花
/*
* 1.分别通过Thread和Runnable创建线程。
(1). 自定义一个类Demo,使其继承Thread类。
1)在Demo类中重写run()方法,在方法编写一个for循环(循环10次),循环体内打印:当前线程名称:+当前循环次数。
2)编写测试类Test1,在Test1类的main()方法中,创建2个线程对象,分别命名为“蜘蛛侠”和“钢铁侠”,并执行线程对象的start()方法。
*/
//定义一个Demo类(继承)
class Demo extends Thread{
public Demo(String string) {
// TODO Auto-generated constructor stub
super(string);
}
public void run() {
for(int i=1;i<=10;i++) {
Thread th=Thread.currentThread();//获取当前线程
String th_name=th.getName();//获取当前线程的名称
System.out.println("“"+th_name+"”"+" 线程正在执行,当前循环的次数为:第"+i+"次!");
}
}
}
public class Test3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//测试一:
System.out.println("下面进行测试一:");
new Demo("蜘蛛侠").start();//创建线程对象
new Demo("钢铁侠").start();//创建线程对象
}
}
实验三(二):
package 实验三;
//202056228杨丽花
/*(2). 自定义一个类Demo,使其实现Runnable接口。
1)在Demo类中覆写run()方法,在方法编写一个for循环(循环10次),循环体内打印:当前线程名称:+当前循环次数。
2) 编写测试类Test2,在Test2类的main()方法中,创建一个Demo对象,利用Thread(Runnable target)构造方法创建2个线程对象,分别命名为“蜘蛛侠”和“钢铁侠”,并执行线程对象的start()方法。
*/
//定义一个Demo1类(实现接口)
class Demo1 implements Runnable{
public Demo1() {
// TODO Auto-generated constructor stub
}
public void run() {
for(int i=1;i<=10;i++) {
if(i==3) {
try {
Thread.sleep(100);//当前线程休眠2000毫秒
} catch(InterruptedException e) {
e.printStackTrace();
}
}
Thread th=Thread.currentThread();//获取当前线程
String th_name=th.getName();//获取当前线程的名称
System.out.println("“"+th_name+"”"+" 线程正在执行,当前循环的次数为:第"+i+"次!");
try {
Thread.sleep(50);//当前线程休眠500毫秒
} catch(InterruptedException e) {
e.printStackTrace();
}
}
}
}
public class Test3_2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//测试二:
System.out.println("下面进行测试二:");
Demo1 demo1=new Demo1();
new Thread(demo1,"蜘蛛侠").start();
new Thread(demo1,"钢铁侠").start();
}
}
实验三(三):
package 实验三;
//202056228杨丽花
import java.io.*;
/* 2.编写一个HelloWorld.java,选择合适的输入输出流将源程序文件
* 复制一份到“Test.txt”文件中、并同时将文件的内容打印到命令提示符窗口中。 */
public class HelloWorld {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
try {
InputStream in=new FileInputStream("HelloWorld.txt");//读取当前目录的文件
OutputStream out=new FileOutputStream("Test.txt");//将读取的文件写入Test.txt中
int len;//记录每次读取的一个字节
while((len=in.read())!=-1) {
out.write(len);//将读取的字节写入文件
}
in.close();
out.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
三、运行结果:
运行结果:
结果一:
结果二:
结果三: