Java程序設計-項目驅動式教程08使用文件實現學生信息存儲_第1頁
Java程序設計-項目驅動式教程08使用文件實現學生信息存儲_第2頁
Java程序設計-項目驅動式教程08使用文件實現學生信息存儲_第3頁
Java程序設計-項目驅動式教程08使用文件實現學生信息存儲_第4頁
Java程序設計-項目驅動式教程08使用文件實現學生信息存儲_第5頁
已閱讀5頁,還剩54頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

講師:XXX時間:

月目錄CONTENTWS01.項目開發(fā)環(huán)境搭建02.學生成績管理03.學生基本信息管理04.不同類別學生信息管理05.學生基本信息查找與計算目錄CONTENTWS06.使用集合實現學生信息管理07.學生信息管理系統(tǒng)異常處理08.使用文件實現學生信息存儲09.使用JDBC實現學生信息管理10.圖書管理系統(tǒng)設計與實現項目

使用文件實現學生信息存儲項目八

使用文件實現學生信息存儲任務一文件操作任務二

字節(jié)流任務三

字符流知識目標了解文件的概念,掌握創(chuàng)建文件對象及操作文件的方法。了解

I/O

流的分類及常用的字節(jié)輸入流和字節(jié)輸出流,掌握文件字節(jié)輸入流和文件字節(jié)輸出流的使用方法。了解常用的字符輸入流和字符輸出流,掌握文件字符輸入流和文件字符輸出流的使用方法。能力目標能夠對文件和目錄進行創(chuàng)建、遍歷和獲取信息等操作。能夠使用字節(jié)流和字符流對文件進行讀寫操作。素養(yǎng)目標培養(yǎng)嚴謹細致、認真負責的職業(yè)素養(yǎng)。提升解決問題的能力。點擊跳過情境掃碼觀看“使用文件實現學生信息存儲”視頻,討論并回答下列問題問題1:在學生信息管理系統(tǒng)中,采用文件存儲數據有哪些優(yōu)勢?問題2:在Java中,如何使用文件實現學生信息存儲?掃碼學習使用文件實現學生信息存儲任務一文件操作文件的概念與路徑標識文件定義存儲設備中的數據集合,包括文本文件與二進制文件。路徑標識文件系統(tǒng)用路徑唯一確定文件,分絕對路徑如“D:\test\file.txt”與相對路徑如“test\file.txt”。Java中File類的使用JavaFile類功能

實現文件和目錄的創(chuàng)建、刪除、重命名,跨平臺操作,獲取路徑、名稱、大小、最后修改時間等基本信息。路徑表示方法

使用系統(tǒng)相關的路徑字符串,抽象表示文件和目錄,確保在不同操作系統(tǒng)上的一致性和兼容性。File(Stringpathname)語法格式根據指定路徑創(chuàng)建文件對象(1)//創(chuàng)建D盤mydir目錄下“test.txt”文件的對象Filefile=newFile("D:/mydir/test.txt");//創(chuàng)建當前工作目錄下“test.txt”文件的對象Filefile=newFile("test.txt");//創(chuàng)建D盤mydir目錄的對象Filefile=newFile("D:/mydir");pathname表示文件或目錄的路徑,可以是絕對路徑或相對路徑。示例(2)根據父路徑和子路徑創(chuàng)建文件對象File(Stringparent,Stringchild)語法格式//創(chuàng)建D盤mydir目錄下“test.txt”文件的對象Filefile=newFile("D:/mydir","test.txt");parent表示父路徑,即目錄;child表示子路徑,即文件名。示例根據父文件對象和子路徑創(chuàng)建文件對象(3)File(Fileparent,Stringchild)語法格式//創(chuàng)建D盤mydir目錄下“test.txt”文件的對象Filefolder=newFile("D:/mydir");Filefile=newFile(folder,"test.txt");parent

表示父文件對象,即目錄對象;child

表示子路徑,即文件名示例創(chuàng)建文件對象并不會實際創(chuàng)建文件或目錄,還需要調用創(chuàng)建文件或目錄方法,才會真正執(zhí)行創(chuàng)建文件或目錄操作。路徑分隔符

Java

中,路徑分隔符可以是“/”,也可以是“\\”(“\”的轉義字符)。例如,“D:/mydir/test.txt”也可以表示為“D:\\mydir\\test.txt”。方

法返回值類型說

明getName()String獲取文件名或目錄名getPath()String獲取創(chuàng)建文件對象時傳入的路徑getAbsolutePath()String獲取文件或目錄的絕對路徑getParent()String獲取文件或目錄的父路徑length()long獲取文件的長度,單位為字節(jié)lastModified()long獲取文件或目錄的最后修改時間,單位為毫秒exists()boolean判斷文件或目錄是否存在isDirectory()boolean判斷是否為目錄isFile()boolean判斷是否為文件isHidden()boolean判斷文件或目錄是否隱藏File類提供的常用方法方

法返回值類型說

明canRead()boolean判斷文件或目錄是否可讀canWrite()boolean判斷文件或目錄是否可寫createNewFile()boolean如果文件不存在,則創(chuàng)建一個新文件;如果文件已經存在,則不創(chuàng)建mkdir()boolean創(chuàng)建目錄,須確保父目錄存在mkdirs()boolean創(chuàng)建多級目錄,包括必需但不存在的父目錄delete()boolean刪除文件或目錄,刪除目錄時,須確保目錄為空renameTo(Filedest)boolean重命名文件或目錄,也可用于移動文件或目錄list()String[]獲取指定目錄下所有文件和子目錄的名稱listFiles()File[]獲取指定目錄下的所有文件和子目錄setReadOnly()boolean設置文件或目錄為只讀File類提供的常用方法(續(xù)表)【問題分析】實例:8-1

文件操作

首先創(chuàng)建

File

類對象

dir(表示

D

Test

目錄)和

File

類對象數組files(表示文件數組),并判斷

Test

目錄是否存在,如果不存在則創(chuàng)建目錄;然后在

Test目錄下創(chuàng)建

File

類對象(表示文件)并添加到

files

中,判斷

files

中的文件是否存在,如果不存在則創(chuàng)建文件,并輸出

Test

目錄下所有文件的名稱;接著重命名

files

中的第一個文件,并輸出

Test

目錄下所有文件的名稱;最后刪除

files

中的所有文件,并輸出

Test

目錄下所有文件的名稱?!具\行結果】【參考代碼】/*FileOperate.java*/packageproject8.example8_1;importjava.io.*; //導入io包中的所有類……(詳見教材)

【結果說明】

當刪除文件數組中的所有文件時,并沒有刪除重命名的文件,這是因為重命名是對磁盤中實際的文件名進行修改,而文件數組中存儲的是創(chuàng)建文件時的目錄和文件名,不會同步修改。123實施流程在項目

src

目錄下的

project8

包中新建

task1

包在

CreateFile

類中添加

main()方法運行CreateFile類在

CreateFile

類中定義遍歷目錄方法34掃碼學習創(chuàng)建并查看學生信息文件文件操作文件概述創(chuàng)建文件對象文件基本操作任務二字節(jié)流Java

中的字節(jié)流以字節(jié)為單位讀寫二進制數據,如圖片、音頻、視頻等。它是

Java中最基礎的流,能夠提供高效的底層數據傳輸功能,并且支持逐字節(jié)或批量讀寫操作。JavaI/OStreams流概念

流被視為數據連續(xù)序列,是Java中處理I/O的基礎,連接數據源與目標。流分類依據方向分輸入、輸出流,按單位分字節(jié)、字符流,分別處理不同數據形式。1.字節(jié)輸入流字節(jié)輸入流概述

字節(jié)輸入流以

InputStream

抽象類為基礎實現,該類是所有字節(jié)輸入流的父類,其子類實現了針對不同數據源的字節(jié)輸入流。概述

InputStream類常用的子類方

法返回值類型說

明read()int從輸入流讀取下一個字節(jié),返回值的范圍為0~255(無符號字節(jié)值),如果到達流的末尾,則返回?1read(byte[]b)int從輸入流讀取多個字節(jié),并存儲到字節(jié)數組

b

中,返回實際讀取的字節(jié)數,如果到達流的末尾,則返回?1read(byte[]b,intoff,intlen)int從輸入流讀取最多

len

個字節(jié),并存儲到字節(jié)數組

b中,索引從

off

開始,返回實際讀取的字節(jié)數,如果到達流的末尾,則返回?1skip(longn)long跳過輸入流的n個字節(jié),返回實際跳過的字節(jié)數close()void關閉輸入流并釋放相關資源

InputStream類提供的常用方法InputStream類中的方法在出現錯誤時一般會引發(fā)IOException異常。2.字節(jié)輸出流字節(jié)輸出流概述

字節(jié)輸出流以

OutputStream

抽象類為基礎實現,該類是所有字節(jié)輸出流的父類,其子類實現了針對不同輸出目標的字節(jié)輸出流。概述OutputStream類常用的子類方

法返回值類型說

明write(intb)void將指定字節(jié)b寫入輸出流write(byte[]b)void將字節(jié)數組b中的所有字節(jié)寫入輸出流write(byte[]b,intoff,intlen)void將字節(jié)數組b中索引從off開始的len個字節(jié)寫入輸出流close()void關閉輸出流并釋放相關資源OutputStream類提供的常用方法OutputStream

類中的方法在出現錯誤時一般會引發(fā)

IOException

異常。文件字節(jié)輸入流由

FileInputStream

類實現,它以字節(jié)為單位對文件進行讀取操作。FileOutputStream類的構造方法FileInputStream(Stringname)FileInputStream(Filefile)其中,name表示要打開文件的名稱,如果文件不存在則報錯;file表示File類對象。實例:8-2

使用文件字節(jié)輸入流讀取文件中的內容【問題分析】

首先創(chuàng)建

FileInputStream

類對象

fis、字節(jié)數組

buf

StringBuffer

類型字符串

sb;

然后循環(huán)使用

read()方法從文件字節(jié)輸入流

fis

中讀取數據到

buf

中,并將buf轉換為字符串追加到sb中;,

最后輸出sb并關閉fis。【運行結果】【參考代碼】/*FileInputStreamDemo.java*/packageproject8.example8_2;importjava.io.*;……(詳見教材)

素材文件案例的素材文件均放在項目的根目錄下。文件字節(jié)輸出流由

FileOutputStream

類實現,它以字節(jié)為單位向文件寫入數據。FileInputStream類的構造方法FileOutputStream(Stringname)FileOutputStream(Stringname,booleanappend)FileOutputStream(Filefile)FileOutputStream(Filefile,booleanappend)name

表示要打開文件的名稱,如果文件不存在則新建文件;append

表示是否在原文件的末尾追加數據,如果為

true

則追加數據,否則覆蓋原文件的內容;file

表示File類對象。。實例:8-3

使用文件字節(jié)輸出流將數據寫入文件【問題分析】

首先創(chuàng)建

FileOutputStream

類對象

fos

和定義字符串

str;

然后使用getBytes()方法將

str

轉換為字節(jié)數組并存儲到

buf

中;

接著使用

write()方法將

buf

寫入文件字節(jié)輸出流fos;

最后關閉fos。【運行結果】【參考代碼】/*FileOutputStreamDemo.java*/packageproject8.example8_3;importjava.io.*;……(詳見教材)

存儲和讀取學生基本信息掃碼學習123實施流程在項目

src

目錄下的

project8

包中新建

task2

包在

task2

包中新建

Main

類運行

Main

類在

task2

包中新建

StudentFileHandler

34字節(jié)流I/O流的分類文件字節(jié)輸出流字節(jié)輸入/輸出流文件字節(jié)輸入流任務三字符流Java中的字符流以字符為單位讀寫文本數據,支持自動編碼轉換,能正確處理中文等Unicode字符,避免直接操作字節(jié)導致的亂碼問題。1.字符輸入流

字符輸入流以

Reader

抽象類為基礎實現,該類是所有字符輸入流的父類,其子類實現了針對不同數據源的字符輸入流。Reader類常用的子類

Reader類基于字符處理,提供read方法及ready檢測,支持高效文本讀取,與InputStream二進制處理形成層級差異。2.字符輸出流

字符輸出流以

Writer

抽象類為基礎實現,該類是所有字符輸出流的父類,其子類實現了針對不同輸出目標的字符輸出流。Writer類常用的子類文件字符輸入流由

FileReader

類實現,它以字符為單位對文件進行讀取操作。FileReader類的構造方法FileReader(Stringname)FileReader(Filefile)其中,name表示要打開文件的名稱,如果文件不存在則報錯;file表示File類對象。實例:8-4

使用文件字符輸入流讀取文件中的內容【問題分析】

首先創(chuàng)建FileReader類對象

fr、字符數組

cbuf

StringBuffer

類型字符串

sb;

然后循環(huán)使用

read()方法從文件字符輸入流

fr

中讀取數據到

cbuf

中,并將

cbuf轉換為字符串追加到sb中;

最后輸出sb并關閉fr。【運行結果】【參考代碼】/*FileReaderDemo.java*/packageproject8.example8_4;importjava.io.*;……(詳見教材)

溫馨提示

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

評論

0/150

提交評論