建立一个程序,写2个线程,同时对一个文件里面写入字符串,另外一个程序读取输出在控制台,保证读取的实时性。
来源:互联网 发布:js密码和确认密码校验 编辑:程序博客网 时间:2024/05/17 04:38
第一个程序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();
}
}
}
- 建立一个程序,写2个线程,同时对一个文件里面写入字符串,另外一个程序读取输出在控制台,保证读取的实时性。
- QT里重定向另外一个控制台程序的输出
- 实时写入的内容同时写到另外一个控件上
- c# 实现2个程序同时操作读写一个文件、一个读一个写
- 用mingw编译C++工程;程序里面的cout<<"aaa";cmd运行c++程序,aaa内容在控制台不显示,如何将aaa输出到控制台屏幕并将控制台内容写到一个文件中。
- C语言逐行读取文件内容,写入另外一个文件
- python读取大文件并逐行写入另外一个文件
- 把一个文件拷贝到另外一个文件,需要打开两个文件,一个读取,一个写入
- 现在我要写一个定时程序定时读取该目录下的所有txt文件到数据库,并把这些txt文件转移到另外一个目录
- 读取一个字符串,输出它里面字符的所有组合
- 花一天时间搜索,居然找到一个德国人写的论文里面有用Matlab读取*.spa文件的程序片段
- 在linux中用C程序实现读取一个文件中的字符,计算它的个数,并把个数显示在另外一个文件夹内
- QT读取xml文件,然后写入另外一个新的xml文件
- 介绍一个可以读取保存在程序集里面的图片资源的小工具
- 如何保证同时只有一个程序在系统中运行
- 向另外一个程序写入数据
- C写的一个读取BIOS时间的程序
- 用C写的一个读取BIOS时间的程序
- 统计一个文件中的字符数,单词数,制表符。
- 自动换行LinearLayout
- Dropdownlist验证是否选择
- android 修改文本选中默认样式
- 进程与线程的一个简单解释
- 建立一个程序,写2个线程,同时对一个文件里面写入字符串,另外一个程序读取输出在控制台,保证读取的实时性。
- Cocos2d-x 常用语句
- 安卓带点击效果的圆角button
- 世界坐标转UGUI屏幕坐标
- Linux Advance--标准I/O的效率
- 合入mpls的情况-netlink失灵了
- 使用ruby解析纯真IP库(qqwry.dat)
- 在dwz系统框架下添加的简单网站便签
- ASI和AFN简单对比