?? 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 + -