public class MainTest {
public static boolean life=true;
public static long length; //文件大小
public static byte[] buf; //緩衝區
public static int count=0; //緩衝區大小
File input=new File("input.txt");
File output=new File("output.txt");
if(!input.exists()||!output.exists()){
System.out.println("Error!There is no file to input or output!");
}
else{
ReadT reader=new ReadT(input);
ModifyT modifyer=new ModifyT();
WriteT writer=new WriteT(output);
reader.start();
modifyer.start();
writer.start();
}
}
---------------------------------------------------------------------------------------------
*ReadT類用來讀取input文件中的數據
*/
import java.io.*;
public class ReadT extends Thread {
private FileInputStream inputFile;
//構造函數,根據傳進來的File對象建立輸入流,並且將MainTest中的數據進行初始化
ReadT(File input){
//建立輸入流,拋出異常
try{
inputFile=new FileInputStream(input);
}
catch(IOException e){
System.out.println(e);
System.exit(1);
}
MainTest.length=input.length(); //得到文件大小
//如果文件什麼都沒有,那麼報錯並退出程序
if(MainTest.length==0){
System.out.println("Nothing to do!");
System.exit(1);
}
MainTest.count=(int)MainTest.length/7; //建立緩衝區
MainTest.buf=new byte[MainTest.count];
}
public void run(){
try{
while((Flag=inputFile.read(MainTest.buf))!=-1){
System.out.println("ReadT");
this.yield();
}
MainTest.life=false;
System.out.println("ReadOver!");
inputFile.close();
}
catch(IOException e){
System.out.println(e);
System.exit(1);
}
}
}
---------------------------------------------------------------------------------------------
*ModifyT用來修改文件,實現數據+1
*/
public class ModifyT extends Thread{
private Integer tempnumi;
private int temp;
private Byte tempnumb;
public void run(){
for(int i=0;i<MainTest.count;i++){
if(!MainTest.life) return;
/* tempnumb=new Byte(MainTest.buf[i]);
temp=tempnumb.intValue();
temp=temp+1;
tempnumi=new Integer(temp);
MainTest.buf[i]=tempnumi.byteValue(); */
System.out.println("ModifyT");
this.yield();
}
}
}
---------------------------------------------------------------------------------------------
*WriteT類用來將修改後的文件寫入output
*/
import java.io.*;
public class WriteT extends Thread{
private FileOutputStream outputFile;
//建立輸出流,拋出異常
try{
outputFile=new FileOutputStream(output);
}
catch(IOException e){
System.out.println(e);
System.exit(1);
}
}
public void run(){
try{
for(int i=0;i<MainTest.count;i++){
if(!MainTest.life) return;
outputFile.write(MainTest.buf);
System.out.println("WriteT");
this.yield();
}
outputFile.close();
}
catch(Exception e){
System.out.println(e);
System.exit(1);
}
}
}