以位元組流接受鍵盤輸入後寫入檔案,並以緩衝位元組流複製檔案
阿新 • • 發佈:2018-12-26
一、程式碼及解釋
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
public class Main {
public static int getValidLength (byte[] bytes){//獲得快取區中實際位元組長
int i = 0;
if (null == bytes || 0 == bytes.length)
return i ;
for (; i < bytes.length; i++) {
if (bytes[i] == '\0'||bytes[i] == '\n')
break;
}
return i-1 ;
}
public static void main(String[] args) throws IOException {
File f1=new File("E:\\mytext.txt");//原始檔
File f2=new File("E:\\mynewtxt.txt");//目標檔案
InputStream is=System.in;//從鍵盤輸入,以位元組流
FileOutputStream os=new FileOutputStream(f1,true);//追加的形式
byte []bt=new byte[1024];//快取位元組陣列
is.read(bt);//讀入陣列
os.write(bt,0 ,getValidLength(bt));//寫入時忽略的空的位元組
BufferedReader br=new BufferedReader(new FileReader(f1));//讀原始檔流
BufferedWriter wr=new BufferedWriter(new FileWriter(f2));//寫原始檔流
String s1=null;//快取字串
while((s1=br.readLine())!=null) {//寫
wr.write(s1);//寫
}
br.close();
wr.close();
}
}
二、結果