⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 thirdhw.java

📁 程序功能:首先建立一个文件并写到输出管道流,然后用输入管道流读取该文件的内容并写到另一个文件中
💻 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 + -