Java程序設(shè)計(jì)項(xiàng)目式教程 課件 8-2 學(xué)生信息的輸入輸出_第1頁
Java程序設(shè)計(jì)項(xiàng)目式教程 課件 8-2 學(xué)生信息的輸入輸出_第2頁
Java程序設(shè)計(jì)項(xiàng)目式教程 課件 8-2 學(xué)生信息的輸入輸出_第3頁
Java程序設(shè)計(jì)項(xiàng)目式教程 課件 8-2 學(xué)生信息的輸入輸出_第4頁
Java程序設(shè)計(jì)項(xiàng)目式教程 課件 8-2 學(xué)生信息的輸入輸出_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

§8-2學(xué)生信息的輸入輸出Java面向?qū)ο蟪绦蛟O(shè)計(jì)教學(xué)目標(biāo)任務(wù)分析將學(xué)生信息管理系統(tǒng)中的學(xué)生對(duì)象信息存入文件中,以實(shí)現(xiàn)數(shù)據(jù)的持久性??赏ㄟ^Java.io中提供的相關(guān)類及方法完成。教學(xué)內(nèi)容1Java數(shù)據(jù)流的概念字節(jié)流操作23字符流操作Java數(shù)據(jù)流的概念

在Java程序設(shè)計(jì)語言中,一個(gè)可以讀取字節(jié)序列的對(duì)象被稱為輸入流(inputstream),一個(gè)可以寫入字節(jié)序列的對(duì)象被稱為輸出流(outputstream)。

在進(jìn)行數(shù)據(jù)讀寫時(shí),如果以字節(jié)為單位,則稱為字節(jié)流。其處理單位為1個(gè)字節(jié)(byte,1byte=8bits)。字節(jié)流的操作

Java中提供了兩個(gè)抽象類InputStream和OutputStream,它們是字節(jié)流的頂級(jí)父類。所有的字節(jié)輸入流都繼承自InputStream,所有的字節(jié)輸出流都繼承自O(shè)utputStream。字節(jié)流的操作抽象類InputStream常用方法方法聲明方法功能intread()從輸入流讀取一個(gè)字節(jié)的數(shù)據(jù)。返回-1,表示數(shù)據(jù)讀取結(jié)束。intread(byte[]b)從輸入流讀取最多b.length個(gè)字節(jié)的數(shù)據(jù),并保存到指定數(shù)組中,返回的整數(shù)表示讀取字節(jié)的數(shù)目。返回-1,表示數(shù)據(jù)讀取結(jié)束。intread(byte[]b,intstart,intsize)從輸入流讀取最多size字節(jié)的數(shù)據(jù),并保存到指定數(shù)組中,start指定保存的起始位置,返回的整數(shù)表示讀取字節(jié)的數(shù)目。返回-1,表示數(shù)據(jù)讀取結(jié)束。Voidclose()關(guān)閉此文件輸入流并釋放與流相關(guān)聯(lián)的任何系統(tǒng)資源。字節(jié)流的操作staticpublicvoidreadFile()throwsIOException{ InputStreaminput=null; try{

//創(chuàng)建一個(gè)FileInputStream對(duì)象 input=newFileInputStream("D:\\test\\text1.txt"); intn;

//調(diào)用read()方法,每次讀取一個(gè)字節(jié),直到返回-1 while((n=input.read())!=-1){

//將讀取的字節(jié)轉(zhuǎn)換為字符輸出 System.out.println((char)n); } }finally{ if(input!=null){

/關(guān)閉文件釋放底層資源 input.close(); } }}一個(gè)字節(jié)一個(gè)字節(jié)的讀取文件內(nèi)容執(zhí)行結(jié)果字節(jié)流的操作staticpublicvoidreadMFile()throwsIOException{ InputStreaminput=null; try{

//創(chuàng)建一個(gè)FileInputStream對(duì)象 input=newFileInputStream("D:\\test\\text1.txt");

//定義字節(jié)數(shù)組 byte[]buffer=newbyte[100];

intcount=0;//讀取到的字節(jié)數(shù)

intn=0;//每次讀取的字節(jié)數(shù)

//調(diào)用read(byte[]b)方法,每次讀取多個(gè)字節(jié),直到返回-1 while((n=input.read(buffer))!=-1){

//將字節(jié)數(shù)組內(nèi)容轉(zhuǎn)換為字符串輸出 System.out.println(newString(buffer)); count=count+n; } System.out.println("\nread"+count+"bytes."); }finally{ if(input!=null){

input.close();//關(guān)閉流釋放底層資源 } } }一次讀取多個(gè)字節(jié)內(nèi)容執(zhí)行結(jié)果字節(jié)流的操作抽象類OutputStream常用方法方法聲明方法功能voidwrite()向輸出流寫入一個(gè)字節(jié)的數(shù)據(jù)。voidwrite(byte[]b)將數(shù)組中的所有數(shù)據(jù)寫入輸出流。voidwrite(byte[]b,intstart,intsize)將數(shù)組中start開始的size個(gè)字節(jié)的數(shù)據(jù)寫入輸出流voidflush()刷新輸出流,并強(qiáng)制寫出所有緩沖的輸出字節(jié)voidclose()關(guān)閉此輸出流并釋放與流相關(guān)聯(lián)的任何系統(tǒng)資源。字節(jié)流的操作staticpublicvoidwriteFile()throwsIOException{ OutputStreamoutput=null; try{ output=newFileOutputStream("D:\\stu\\poem.txt");

Stringstr="大江東去,\n浪淘盡,\n千古風(fēng)流人物。";

byte[]buff=str.getBytes();//將字符串轉(zhuǎn)換為字節(jié)數(shù)組

output.write(buff);//寫入

System.out.println("寫入成功"); }finally{ if(output!=null){

//關(guān)閉流釋放底層資源 output.close(); } } } publicstaticvoidmain(String[]args)throwsIOException{ writeFile(); }創(chuàng)建一個(gè)用于寫數(shù)據(jù)到D:\test\text1.txt文件的輸出流對(duì)象字符流的操作

Java中提供了兩個(gè)抽象類Writer和Reader,它們是字符流的頂級(jí)父類。所有的字符輸入流都繼承自Reader,所有的字符輸出流都繼承自Writer。讀寫中文文件常使用字符流。字符流的操作Reader類層次結(jié)構(gòu)

Reader是以char為單位讀取文件的一個(gè)輸入流(字符流)接口,其中最基本的一個(gè)實(shí)現(xiàn)類是FileReader,可以將文件內(nèi)容以字符為單位輸入到內(nèi)存中。字符輸入流字符流的操作

使用FileReader從指定文件讀取字符數(shù)據(jù),首先需要使用其構(gòu)造方法創(chuàng)建字符輸入流對(duì)象,然后將指定文件內(nèi)容以字符為單位輸入到內(nèi)存,主要使用以下基本操作。1)創(chuàng)建輸入流對(duì)象:FileReader(String

fileName)如:FileReaderin=newFileReader("D:\test\text1.txt");創(chuàng)建一個(gè)從D:\test\text1.txt文件中讀取字符數(shù)據(jù)的輸入流對(duì)象。2)讀文件,與字節(jié)流相似也有有三種讀數(shù)據(jù)的方法。intread()//讀一個(gè)字符,返回-1時(shí),數(shù)據(jù)讀取結(jié)束int

read(char[]

cbuf)//將字符讀入數(shù)組,返回值為讀取的字符數(shù),如果已經(jīng)達(dá)到流的結(jié)尾,則為-1intread(char[]c,intoffset,intlen)//將字符讀入數(shù)組的指定位置,返回值為讀取的字符數(shù),如果已經(jīng)達(dá)到流的結(jié)尾,則為-1字符輸入流字符流的操作publicstaticvoidmain(String[]args){ FileReaderfreader=null; try{

//創(chuàng)建FIleReader對(duì)象 freader=newFileReader("D:\\test\\text1.txt");

char[]temp=newchar[100];//設(shè)置一個(gè)字符讀取緩沖區(qū) intn; //一次讀取的字符個(gè)數(shù) while((n=freader.read(temp))!=-1){

System.out.println("讀取"+n+"個(gè)字符");

System.out.println(temp);//控制臺(tái)輸出讀取的字符 } }catch(IOExceptione){

System.out.println(“文件訪問異?!保?; e.printStackTrace(); }finally{ try{ if(freader!=null){ freader.close(); } }catch(IOExceptione){ e.printStackTrace(); } } }字符輸入流字符流的操作Writer類層次結(jié)構(gòu)

Writer是以char為單位寫文件的一個(gè)輸出流(字符流)接口,其中最基本的一個(gè)實(shí)現(xiàn)類是FileWriter,可以將內(nèi)存中的數(shù)據(jù)以字符為單位輸出到指定文件中。字符輸出流使用FileWriter寫數(shù)據(jù)到指定文件,首先需要使用其構(gòu)造方法創(chuàng)建字符輸出流對(duì)象,然后將內(nèi)存中的數(shù)據(jù)以字符為單位寫入到指定文件中,主要使用以下基本操作。1)創(chuàng)建輸出流對(duì)象:FileWriter(StringfileName)//創(chuàng)建一個(gè)輸出流對(duì)象如:FileReaderin=newFileReader("D:\test\text1.txt");創(chuàng)建一個(gè)向D:\test\text1.txt文件中寫字符數(shù)據(jù)的輸出流對(duì)象。FileWriter(StringfileName,booleanappend)創(chuàng)建一個(gè)輸出流對(duì)象,第二個(gè)布爾值參數(shù),表示是否追加寫入的數(shù)據(jù),如果為true,表示在文件末尾追加數(shù)據(jù);如果為false,表示覆蓋原文件內(nèi)容。2)寫文件,與字節(jié)流相似也有有三種寫數(shù)據(jù)的方法。voidwrite()

//寫一個(gè)字符voidwrite(char[]cbuf)

//寫入一個(gè)字符數(shù)組voidwrite(char[]c,intstart,intlen)//寫入字符數(shù)組的指定部分字符流的操作字符輸出流字符流的操作publicstaticvoidmain(String[]args){ try{ Filefile=newFile("D:\\stu\\student.txt");

//創(chuàng)建C:\stu\student.txt文件 file.createNewFile();

//創(chuàng)建FileWriter對(duì)象 FileWriterfwriter=newFileWriter(file);

//向文件寫入內(nèi)容

fwriter.write("少年強(qiáng)則國(guó)強(qiáng)")

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論