java實驗之流與檔案
一、實驗目的:
1. 理解資料流的概念
2. 理解Java流的層次結構
3. 理解檔案的概念
二、實驗環境:
一臺配置有java環境,裝有eclipse的電腦。
三、實驗內容:
(寫出主要的內容)
(一) 實驗要求
1. 掌握位元組流的基本使用方法
2. 掌握字元流的基本使用方法
3. 能夠建立、讀寫、更新檔案
(二) 使用標準資料流的應用程式
標準資料流指在字元方式下(如DOS 提示符)程式與系統進行輸入輸出的方式,鍵盤和顯示器螢幕是標準輸入輸出裝置,資料輸入的起點為鍵盤,資料輸出的終點是螢幕,輸出的資料可以在螢幕上顯示出來。
1. 程式功能:將鍵盤上輸入的字元在螢幕上顯示出來
2. 編寫KY10_1.java 程式檔案,原始碼如下。
class KY10_1{
public static void main(String[] args) throws java.io.IOException {
byte buffer[]=new byte[10];
System.out.println("從鍵盤輸入不超過10 個字元,按回車鍵結束輸入:");
int count =System.in.read(buffer);//讀取輸入的字元並存放在緩衝區buffer 中
System.out.println("儲存在緩衝區buffer 中元素的個數為:"+count);
System.out.println("buffer 中各元素的值為:");
for (int i=0;i<count;i++){
System.out.print(" "+ buffer[i]);//在螢幕上顯示buffer 元素的值
}
System.out.println();
System.out.println("輸出buffer 字元元素:");
System.out.write(buffer, 0, buffer.length);
}
}
3. 編譯、執行KY10_1.java 檔案。
(三) 使用檔案輸入輸出流的應用程式
1. 程式功能:將儲存在本地機當前資料夾中的KY10_2.HTML 文字檔案的內容在螢幕上顯示出來,然後將其另存為KY10_2.txt 檔案。
2. 編寫KY10_2.java 程式檔案,原始碼如下
import java.io.*;
public class KY5_4 {
public static void main(String[] args) throws IOException {
FileReader in=new FileReader("KY5_1.HTML");//建立檔案輸入流
BufferedReader bin=new BufferedReader(in);//建立緩衝輸入流
FileWriter out=new FileWriter(" KY5_1.txt",true);//建立檔案輸出流
String str;
while ((str=bin.readLine())!=null) {
//將緩衝區內容通過迴圈方式逐行賦值給字串str
System.out.println(str);//在螢幕上顯示字串str
out.write(str+"\n");//將字串str 通過輸出流寫入KY5_1.txt 中
}
in.close();
out.close();
}
}
3. 編譯、執行程式
(四)轉換流
1.程式功能:從鍵盤讀入一行字元,並將其轉換成大寫列印在螢幕,當輸入exit字串時退出。
2. 編寫KY10_3.java 程式檔案,原始碼如下
import java.io.*;
public class KY10_3 {
public static void main(String args[]) {
InputStreamReader isr =
new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
String s = null;
try {
s = br.readLine();
while(s!=null){
if(s.equalsIgnoreCase("exit")) break;
System.out.println(s.toUpperCase());
s = br.readLine();
}
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
3. 編譯、執行程式
(五) 使用資料輸入輸出流與檔案輸入輸出流類的應用程式
使用資料輸入流DataOutputStream 和資料輸出流DataInputStream 可以讀取或寫入任何Java 型別的資料,不用關心它們的實際長度是多少位元組。一般與檔案輸入流FileInputStream 和輸出流類
FileOutputStream 一起使用。
1. 程式功能:將整型資料和字串物件通過資料輸出流寫到檔案中。將檔案中的整型資料和字串物件通過資料輸出流讀出,並在螢幕上顯示檔案中的內容。
2. 編寫KY10_4.java 程式檔案,原始碼如下。
import java.io.*;
public class KY10_4
{
public static void main(String arg[])
{
try
{ //新增方式建立檔案輸出流
FileOutputStream fout = new FileOutputStream("KY5_6.txt",true);
DataOutputStream dout = new DataOutputStream(fout);
dout.writeInt(1);
dout.writeChars("羅馬"+"\n");
dout.writeInt(2);
dout.writeChars("北京"+"\n");
dout.close();
}
catch (IOException ioe){}
try
{
FileInputStream fin = new FileInputStream("KY5_6.txt");
DataInputStream din = new DataInputStream(fin);
int i = din.readInt();
while (i!=-1) //輸入流未結束時,輸入流結束時i 為-1
{
System.out.print(i+" ");
char ch ;
while ((ch=din.readChar())!='\n') //字串未結束時
System.out.print(ch);
System.out.println();
i = din.readInt();
}
din.close();
}
catch (IOException ioe){}
}
}
3. 編譯並執行程式