1. 程式人生 > >java實驗之流與檔案

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. 編譯並執行程式