Java程序设计-项目驱动式教程08使用文件实现学生信息存储_第1页
Java程序设计-项目驱动式教程08使用文件实现学生信息存储_第2页
Java程序设计-项目驱动式教程08使用文件实现学生信息存储_第3页
Java程序设计-项目驱动式教程08使用文件实现学生信息存储_第4页
Java程序设计-项目驱动式教程08使用文件实现学生信息存储_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

讲师:XXX时间:

月目录CONTENTWS01.项目开发环境搭建02.学生成绩管理03.学生基本信息管理04.不同类别学生信息管理05.学生基本信息查找与计算目录CONTENTWS06.使用集合实现学生信息管理07.学生信息管理系统异常处理08.使用文件实现学生信息存储09.使用JDBC实现学生信息管理10.图书管理系统设计与实现项目

使用文件实现学生信息存储项目八

使用文件实现学生信息存储任务一文件操作任务二

字节流任务三

字符流知识目标了解文件的概念,掌握创建文件对象及操作文件的方法。了解

I/O

流的分类及常用的字节输入流和字节输出流,掌握文件字节输入流和文件字节输出流的使用方法。了解常用的字符输入流和字符输出流,掌握文件字符输入流和文件字符输出流的使用方法。能力目标能够对文件和目录进行创建、遍历和获取信息等操作。能够使用字节流和字符流对文件进行读写操作。素养目标培养严谨细致、认真负责的职业素养。提升解决问题的能力。点击跳过情境扫码观看“使用文件实现学生信息存储”视频,讨论并回答下列问题问题1:在学生信息管理系统中,采用文件存储数据有哪些优势?问题2:在Java中,如何使用文件实现学生信息存储?扫码学习使用文件实现学生信息存储任务一文件操作文件的概念与路径标识文件定义存储设备中的数据集合,包括文本文件与二进制文件。路径标识文件系统用路径唯一确定文件,分绝对路径如“D:\test\file.txt”与相对路径如“test\file.txt”。Java中File类的使用JavaFile类功能

实现文件和目录的创建、删除、重命名,跨平台操作,获取路径、名称、大小、最后修改时间等基本信息。路径表示方法

使用系统相关的路径字符串,抽象表示文件和目录,确保在不同操作系统上的一致性和兼容性。File(Stringpathname)语法格式根据指定路径创建文件对象(1)//创建D盘mydir目录下“test.txt”文件的对象Filefile=newFile("D:/mydir/test.txt");//创建当前工作目录下“test.txt”文件的对象Filefile=newFile("test.txt");//创建D盘mydir目录的对象Filefile=newFile("D:/mydir");pathname表示文件或目录的路径,可以是绝对路径或相对路径。示例(2)根据父路径和子路径创建文件对象File(Stringparent,Stringchild)语法格式//创建D盘mydir目录下“test.txt”文件的对象Filefile=newFile("D:/mydir","test.txt");parent表示父路径,即目录;child表示子路径,即文件名。示例根据父文件对象和子路径创建文件对象(3)File(Fileparent,Stringchild)语法格式//创建D盘mydir目录下“test.txt”文件的对象Filefolder=newFile("D:/mydir");Filefile=newFile(folder,"test.txt");parent

表示父文件对象,即目录对象;child

表示子路径,即文件名示例创建文件对象并不会实际创建文件或目录,还需要调用创建文件或目录方法,才会真正执行创建文件或目录操作。路径分隔符

Java

中,路径分隔符可以是“/”,也可以是“\\”(“\”的转义字符)。例如,“D:/mydir/test.txt”也可以表示为“D:\\mydir\\test.txt”。方

法返回值类型说

明getName()String获取文件名或目录名getPath()String获取创建文件对象时传入的路径getAbsolutePath()String获取文件或目录的绝对路径getParent()String获取文件或目录的父路径length()long获取文件的长度,单位为字节lastModified()long获取文件或目录的最后修改时间,单位为毫秒exists()boolean判断文件或目录是否存在isDirectory()boolean判断是否为目录isFile()boolean判断是否为文件isHidden()boolean判断文件或目录是否隐藏File类提供的常用方法方

法返回值类型说

明canRead()boolean判断文件或目录是否可读canWrite()boolean判断文件或目录是否可写createNewFile()boolean如果文件不存在,则创建一个新文件;如果文件已经存在,则不创建mkdir()boolean创建目录,须确保父目录存在mkdirs()boolean创建多级目录,包括必需但不存在的父目录delete()boolean删除文件或目录,删除目录时,须确保目录为空renameTo(Filedest)boolean重命名文件或目录,也可用于移动文件或目录list()String[]获取指定目录下所有文件和子目录的名称listFiles()File[]获取指定目录下的所有文件和子目录setReadOnly()boolean设置文件或目录为只读File类提供的常用方法(续表)【问题分析】实例:8-1

文件操作

首先创建

File

类对象

dir(表示

D

Test

目录)和

File

类对象数组files(表示文件数组),并判断

Test

目录是否存在,如果不存在则创建目录;然后在

Test目录下创建

File

类对象(表示文件)并添加到

files

中,判断

files

中的文件是否存在,如果不存在则创建文件,并输出

Test

目录下所有文件的名称;接着重命名

files

中的第一个文件,并输出

Test

目录下所有文件的名称;最后删除

files

中的所有文件,并输出

Test

目录下所有文件的名称。【运行结果】【参考代码】/*FileOperate.java*/packageproject8.example8_1;importjava.io.*; //导入io包中的所有类……(详见教材)

【结果说明】

当删除文件数组中的所有文件时,并没有删除重命名的文件,这是因为重命名是对磁盘中实际的文件名进行修改,而文件数组中存储的是创建文件时的目录和文件名,不会同步修改。123实施流程在项目

src

目录下的

project8

包中新建

task1

包在

CreateFile

类中添加

main()方法运行CreateFile类在

CreateFile

类中定义遍历目录方法34扫码学习创建并查看学生信息文件文件操作文件概述创建文件对象文件基本操作任务二字节流Java

中的字节流以字节为单位读写二进制数据,如图片、音频、视频等。它是

Java中最基础的流,能够提供高效的底层数据传输功能,并且支持逐字节或批量读写操作。JavaI/OStreams流概念

流被视为数据连续序列,是Java中处理I/O的基础,连接数据源与目标。流分类依据方向分输入、输出流,按单位分字节、字符流,分别处理不同数据形式。1.字节输入流字节输入流概述

字节输入流以

InputStream

抽象类为基础实现,该类是所有字节输入流的父类,其子类实现了针对不同数据源的字节输入流。概述

InputStream类常用的子类方

法返回值类型说

明read()int从输入流读取下一个字节,返回值的范围为0~255(无符号字节值),如果到达流的末尾,则返回−1read(byte[]b)int从输入流读取多个字节,并存储到字节数组

b

中,返回实际读取的字节数,如果到达流的末尾,则返回−1read(byte[]b,intoff,intlen)int从输入流读取最多

len

个字节,并存储到字节数组

b中,索引从

off

开始,返回实际读取的字节数,如果到达流的末尾,则返回−1skip(longn)long跳过输入流的n个字节,返回实际跳过的字节数close()void关闭输入流并释放相关资源

InputStream类提供的常用方法InputStream类中的方法在出现错误时一般会引发IOException异常。2.字节输出流字节输出流概述

字节输出流以

OutputStream

抽象类为基础实现,该类是所有字节输出流的父类,其子类实现了针对不同输出目标的字节输出流。概述OutputStream类常用的子类方

法返回值类型说

明write(intb)void将指定字节b写入输出流write(byte[]b)void将字节数组b中的所有字节写入输出流write(byte[]b,intoff,intlen)void将字节数组b中索引从off开始的len个字节写入输出流close()void关闭输出流并释放相关资源OutputStream类提供的常用方法OutputStream

类中的方法在出现错误时一般会引发

IOException

异常。文件字节输入流由

FileInputStream

类实现,它以字节为单位对文件进行读取操作。FileOutputStream类的构造方法FileInputStream(Stringname)FileInputStream(Filefile)其中,name表示要打开文件的名称,如果文件不存在则报错;file表示File类对象。实例:8-2

使用文件字节输入流读取文件中的内容【问题分析】

首先创建

FileInputStream

类对象

fis、字节数组

buf

StringBuffer

类型字符串

sb;

然后循环使用

read()方法从文件字节输入流

fis

中读取数据到

buf

中,并将buf转换为字符串追加到sb中;,

最后输出sb并关闭fis。【运行结果】【参考代码】/*FileInputStreamDemo.java*/packageproject8.example8_2;importjava.io.*;……(详见教材)

素材文件案例的素材文件均放在项目的根目录下。文件字节输出流由

FileOutputStream

类实现,它以字节为单位向文件写入数据。FileInputStream类的构造方法FileOutputStream(Stringname)FileOutputStream(Stringname,booleanappend)FileOutputStream(Filefile)FileOutputStream(Filefile,booleanappend)name

表示要打开文件的名称,如果文件不存在则新建文件;append

表示是否在原文件的末尾追加数据,如果为

true

则追加数据,否则覆盖原文件的内容;file

表示File类对象。。实例:8-3

使用文件字节输出流将数据写入文件【问题分析】

首先创建

FileOutputStream

类对象

fos

和定义字符串

str;

然后使用getBytes()方法将

str

转换为字节数组并存储到

buf

中;

接着使用

write()方法将

buf

写入文件字节输出流fos;

最后关闭fos。【运行结果】【参考代码】/*FileOutputStreamDemo.java*/packageproject8.example8_3;importjava.io.*;……(详见教材)

存储和读取学生基本信息扫码学习123实施流程在项目

src

目录下的

project8

包中新建

task2

包在

task2

包中新建

Main

类运行

Main

类在

task2

包中新建

StudentFileHandler

34字节流I/O流的分类文件字节输出流字节输入/输出流文件字节输入流任务三字符流Java中的字符流以字符为单位读写文本数据,支持自动编码转换,能正确处理中文等Unicode字符,避免直接操作字节导致的乱码问题。1.字符输入流

字符输入流以

Reader

抽象类为基础实现,该类是所有字符输入流的父类,其子类实现了针对不同数据源的字符输入流。Reader类常用的子类

Reader类基于字符处理,提供read方法及ready检测,支持高效文本读取,与InputStream二进制处理形成层级差异。2.字符输出流

字符输出流以

Writer

抽象类为基础实现,该类是所有字符输出流的父类,其子类实现了针对不同输出目标的字符输出流。Writer类常用的子类文件字符输入流由

FileReader

类实现,它以字符为单位对文件进行读取操作。FileReader类的构造方法FileReader(Stringname)FileReader(Filefile)其中,name表示要打开文件的名称,如果文件不存在则报错;file表示File类对象。实例:8-4

使用文件字符输入流读取文件中的内容【问题分析】

首先创建FileReader类对象

fr、字符数组

cbuf

StringBuffer

类型字符串

sb;

然后循环使用

read()方法从文件字符输入流

fr

中读取数据到

cbuf

中,并将

cbuf转换为字符串追加到sb中;

最后输出sb并关闭fr。【运行结果】【参考代码】/*FileReaderDemo.java*/packageproject8.example8_4;importjava.io.*;……(详见教材)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论