📄 thirdhw.java
字号:
/* Created by huqi,the student number is SY0521117
* the third java homework is Thread
* 程序功能:首先建立一个文件 并写到输出管道流,
* 然后用输入管道流读取该文件的内容并写到另一个文件中
* Date:21//11/05
*/
import java.lang.*;
import java.io.*;
public class ThirdHw
{ public static void main(String args[])
{
try
{
PipedOutputStream outStream = new PipedOutputStream();
PipedInputStream inStream = new PipedInputStream(outStream);//将一个输出管道流的对象和一个输入管道流的对象相连接
new PepedWriter( outStream ).start();//向输出管道流发数据
new PepedReader( inStream ).start(); //从输入管道流接受数据
}
catch( IOException e )
{ System.out.println(e);}
}
}
class PepedWriter extends Thread {
private PipedOutputStream outStream;//将数据输出
private String messages[ ]= { "1000", "4000", //要读写的内容
"88888888", "12.9f","5000000.9f",
"h","hello world","true"};
public PepedWriter(PipedOutputStream o) {
outStream = o;
}
public void run()
{
this.setPriority( Thread.MAX_PRIORITY );//两个线程交替运行,所以设置一个优先级别 方便在控制台上输入第一个文件名
String inputFile=" ";
BufferedReader inName = new BufferedReader(new InputStreamReader(
System.in));//用标准输入读取文件名
String filename;
String s;
System.out.println("请输入文件名 :");
try{
if ((filename = inName.readLine()) != null && filename.length() != 0)
inputFile = filename;
PrintWriter p = new PrintWriter(new BufferedWriter( new FileWriter(inputFile)));
for (int i = 0; i < messages.length; i++)
{
p.println(messages[ i ]);
p.flush();
}
inName.close();//关闭文件
p.close();
}
catch(IOException e){}
try{
BufferedReader inInfo = new BufferedReader(new FileReader(inputFile));
PrintWriter out = new PrintWriter( outStream );//将文建立文件的内容输出到输出管道流
while((s=inInfo.readLine())!=null)
{
out.println(s);
out.flush();
}
inInfo.close(); //关闭文件
out.close();
}
catch(IOException ie){}
}
}
class PepedReader extends Thread
{
private PipedInputStream inStream;//从中读数据
public PepedReader(PipedInputStream i)
{
inStream = i;
}
String outputFile=" ";
public void run(){
String filename;
this.setPriority( Thread.MIN_PRIORITY );
try{
sleep(1000*8); // 停顿片刻,输入另一个文件的文件名
}catch(InterruptedException ex)
{}
try{
System.out.println("通过输入管道输出到另一个文件的的文件名:");
BufferedReader oName = new BufferedReader(new InputStreamReader(
System.in));//用标准输入读取文件名
if ((filename = oName.readLine()) != null && filename.length() != 0)
outputFile = filename;
PrintWriter outData = new PrintWriter(new BufferedWriter(
new FileWriter(outputFile)));
BufferedReader d = new BufferedReader(new InputStreamReader(new
DataInputStream(inStream)));//从输入管道流中读取文件的内容
//写到另一个文件中
String offset=" ";
while ((offset=d.readLine()) !=null)//读取内容
{
outData.println(offset);
outData.flush();
}
//关闭文件
oName.close();
outData.close();
d.close();
}
catch (IOException e)//异常处理
{
System.out.println(e);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -