最近學習了如何讀取輸出文件,貼上部分代碼:
TestInputStream1():
String strFile = "Data/DataGroup.cpp";
File = new File(strFile);
InputStream in = null;
in = new FileInputStream(file);
//創建合適文件大小的數組,一次性把數據從文件中讀出
b1 = new byte[(int)file.length()];
// 讀取文件中的內容到b[]數組,如果read()返回讀取的字節內容,
// 當內容為空時返回-1,可以以此作為判斷文件內容是否讀取完畢
in.read(b1);
in.close();
textArea.append(new String(b1));
TestInputStream2():
int iSize = 1024;
boolean blSleep = true;
String strFile = "Data/DataGroup.cpp";
File file = new File(strFile);
int iCount = (int)file.length()/iSize;
InputStream in = null;
in = new FileInputStream(file);
b2 =new byte[iSize];
int temp = 0;
int no = 0;
while((temp = in.read()) != -1){
no++;
in.read(b2);
System.out.PRintln(new String(b2));
if(no < iCount){
in.read(b2);
System.out.println(new String(b2));
}
else{
blSleep = false;
System.out.print((char)temp);
}
}
in.close();
執行TestInputStream1(),后:
TestOutputStream(): (讀文本文件,然后顯示到組件,寫到另外一個文件)
// 寫文件時的相關變量
String strOut = "*Data/DataGroup_copy.cpp";
File file = new File(strOut);
OutputStream output = null;
output = new FileOutputStream(file);
output.write(b1);
output.close();
TestPrintStream()://讀取并輸出屏幕上,輸出到文件上
String strFile = "Data/DataGroup.cpp";
File file = new File(strFile);
InputStream in = null;
in = new FileInputStream(file);
//創建合適文件大小的數組,一次性把數據從文件中讀出
b1 = new byte[(int)file.length()];
// 讀取文件中的內容到b[]數組,如果read()返回讀取的字節內容,
// 當內容為空時返回-1,可以以此作為判斷文件內容是否讀取完畢
in.read(b1);
in.close();
// 將數據輸出到屏幕
PrintStream printStream = new PrintStream(System.out);
printStream.println(new String(b1));
printStream.flush(); // 徹底完成輸出并清空緩沖區
printStream.close();
// 將數據輸出到文件
File filePrint = new File("Data/print.cpp");
printStream = new PrintStream(filePrint);
printStream.println(new String(b1));
printStream.close();
TestDataInputStream():
// 鍵盤輸入(如何自適應根據用戶輸入的數據多少分配空間)
byte b[] = new byte[12];
DataInputStream dataInputStream = new DataInputStream(System.in);
String str = null;
dataInputStream.read(b);
dataInputStream.close();
System.out.println(new String(b));
// 文件輸入
String strFile = "Data/表2-5.txt";
byte byFile[] = null;
File file = new File(strFile);
InputStream instream = null;
instream = new FileInputStream(file);
dataInputStream = new DataInputStream(instream);
float temp = (float) 0.0;
str = null;
byFile = new byte[(int)file.length()];
dataInputStream.read(byFile);
dataInputStream.close();
System.out.println(new String(byFile));
TestDataInputStream2()://二進制
System.out.println("從文件中每次讀取一個數值");
DataInputStream dataInputStream = null;
// 文件輸入
String strFile = "Data/表2-5_Copy.txt";
File file = new File(strFile);
InputStream instream = null;
instream = new FileInputStream(file);
dataInputStream = new DataInputStream(instream);
System.out.println("二進制文件讀取結果的輸出!");
float temp = (float) 0.0;
// 判斷是否文件結束
while(dataInputStream.available() > 0){
temp = dataInputStream.readFloat();
System.out.println(temp);
instream.close();
dataInputStream.close();
TestDataOutputStream():
DataOutputStream outputStream = null;
DataInputStream inputStream = null;
// 文件輸入
byte byFile[] = null;
File file = new File("Data/表2-5.txt");
InputStream instream = null;
instream = new FileInputStream(file);
inputStream = new DataInputStream(instream);
String str = null;
byFile = new byte[(int)file.length()];
inputStream.read(byFile);
str = new String(byFile);
inputStream.close();
String strSplit[] = str.split(" ");
System.out.println(strSplit.length);
// 把字符串str中的數據一個一個寫入文件中(二進制格式文件)
String strFile = "Data/表2-5_Copy.txt";
file = new File(strFile);
OutputStream out = null;
out = new FileOutputStream(file);
outputStream = new DataOutputStream(out);
for(int i = 0;i < strSplit.length;i++){
float temp = Float.valueOf(strSplit[i]);
System.out.println(temp);
outputStream.writeFloat(temp);
}
out.close();
outputStream.close();
}
TestBufferReaderAndBufferedWriter():
// 鍵盤輸入
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr) ;
String str = null;
str = br.readLine();
isr.close();
br.close();
System.out.println(str);
// 讀文件
str = null;
String strFile = "Data/result_表2-5.txt";
if(isr != null) isr = null;
isr = new InputStreamReader(new FileInputStream(new File(strFile)));
br = new BufferedReader(isr);
// 寫文件
String strWrite = "Data/result_表2-5_copy.txt";
OutputStreamWriter out = null;
BufferedWriter bw = null;
out = new OutputStreamWriter(new FileOutputStream(new File(strWrite)));
bw = new BufferedWriter(out);
// Java中有沒有類似于rewind函數,即對指針進行重定位?????????
isr = new InputStreamReader(new FileInputStream(new File(strFile)));
br = new BufferedReader(isr);
str = null;
while((str = br.readLine()) != null){
System.out.println(str);
bw.write(str); // 在使用readLine讀取時,換行符已經被取消
bw.newLine();
}
bw.close();
out.close();
新聞熱點
疑難解答