您的位置:首页 > 其它

建立一个程序,写2个线程,同时对一个文件里面写入字符串,另外一个程序读取输出在控制台,保证读取的实时性。

2015-11-24 15:16 676 查看
第一个程序2个线程写入:

package com.ly.IO;

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;

public class TestThread {

public static void main(String[] args) {

T1 t1=new T1();
T2 t2=new T2();
t1.start();
t2.start();
 

}

}

class T1 extends Thread{
public void run(){
//上锁
synchronized(this){
BufferedWriter bw=null;
BufferedReader br=null;
try {
bw = new BufferedWriter(new  FileWriter("C:\\java\\IO\\io5"));
br=new BufferedReader(new FileReader("C:\\java\\IO\\io5"));
} catch (IOException e1) {

e1.printStackTrace();
}

try {

String s=null;
for(int i=0;i<=20;i++){
 s=String.valueOf(Math.random());
bw.write(s);
bw.newLine();

}
bw.flush();
 while((s=br.readLine())!=null){
System.out.println("线程1:"+""+s);
try {
 
//输出后暂停
Thread.sleep(10000);
} catch (InterruptedException e) {

e.printStackTrace();
}
 }
 
 bw.close();
 br.close();
} catch (IOException e) {

e.printStackTrace();
}
 

 }
}
}

class T2 extends Thread{
public void run(){
//上锁
synchronized(this){
BufferedWriter bw=null;
BufferedReader br=null;
try {
bw = new BufferedWriter(new  FileWriter("C:\\java\\IO\\io5"));
br=new BufferedReader(new FileReader("C:\\java\\IO\\io5"));
} catch (IOException e1) {

e1.printStackTrace();
}

try {
String s=null;
for(int i=0;i<=20;i++){
 s=String.valueOf(Math.random());
bw.write(s);
bw.newLine();
}
bw.flush();
 while((s=br.readLine())!=null){
System.out.println("线程2:"+""+s);
try {
Thread.sleep(10000);
} catch (InterruptedException e) {

e.printStackTrace();
}
 }
 
 bw.close();
 br.close();
} catch (IOException e) {

e.printStackTrace();
}
 

 }
 
}
}

第二个读写:

package com.ly.IO;

import java.io.BufferedReader;

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.IOException;

public class ReadTestThread {

public static void main(String[] args) {
try {
BufferedReader br=new BufferedReader (new FileReader("C:\\java\\IO\\io5"));
String s=null;
try {
while((s=br.readLine())!=null){
System.out.println(s);
}
} catch (IOException e) {

e.printStackTrace();
}

} catch (FileNotFoundException e) {
e.printStackTrace();


}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: