第11周 预习、实验与作业:流与文件

郑老师 老师 2022-11-01 07:31:51
加精

目录

  • 1. 预习
  • 1.1 学习目标
  • 1.2 预习任务
  • 1.3 课前问题列表
  • 2.实验
  • 3.作业
  • 3.1 课后复习指导
  • 3.2 面向对象设计大作业第二阶段-类的设计与简单代码实现
  • 3.3 视频
  • 3.4 章节测验与讨论

1. 预习

简易预习流程:先看预习课件,认真完成里面的习题。然后根据需要观看视频。最后尝试完成课前问题列表

以任务的形式完成"课前问题列表"的同学可获取积分,可部分完成。默认5分。

1.1 学习目标

  1. 理解与掌握Java流编程技术。能区分与使用字节流、字符流读写数据,掌握组合过滤流的编程模式。
  2. 掌握使用Java操作文件系统。掌握File、Path、Paths、Files类的用途。了解RandomAccessFile的使用。
  3. 了解正则表达式。

1.2 预习任务

  1. 预习课件(两份)
  2. 观看视频:8.2 文件与流简介、8.3 输入输出流基本概念、8.4 File类

1.3 课前问题列表

  1. 程序可以处理的数据来源除了文件还有哪些?对不同的数据来源共同的操作是什么?
  2. 将对不同数据源中数据的读写抽象为对流的读写,有什么好处?
  3. 二进制文件与文本文件有什么区别?字节流与字符流之间有什么关系?为什么有的文本文件打开会乱码?怎么解决?
  4. 字符与字节之间的关系是什么?尝试使用Visual Studio Code的Hex Editor插件打开一个文本文件。在文本文件中输入"123abc中文"。观察:一个英文字符占几个字节,一个中文字符占用几个字节。在Java程序中,使用字节流怎么将这个文件中的数据正确读取并组装起来。
  5. 有一个stus数组,里面有若干Student对象(String name, int age, boolean gender, double score)。要将这些对象高效率地存储到文件中,需要使用哪些流?使用二进制流与使用字符流将这个数组存储到文件有何不同?使用二进制流与使用字符流从文件中读取并组装成对象有何不同?
  6. 使用什么类可以对文件进行随机存取?读写的单位是什么?为什么不是字符呢?

2.实验

实验链接:https://www.cnblogs.com/zhrb/p/6834084.html

提前完成“第1次实验”之“0.字节流与二进制文件”请联系老师加分

3.作业

本周作业主要以完成实验内容为主。请将上方实验链接中的实验内容完成。

3.1 课后复习指导

  1. 使用流编写代码的一般模式。使用 try...catch...finally
  2. 组合过滤流编程模式
    相关代码:InputStreamReaderTest.java
  3. 常见的字节流、字符流实现类、其他常用类
    字节流:文件读写:FileInputStream, FileOutputStream。相关代码:CopyBytesWithBuffer.java
    字节流:缓冲流:BufferedInputStream....。相关代码:CopyBytesWithBuffer.java
    字节流:数据流:DataInputStream, DataOutputStream。 相关代码:DataStreams.java
    字节流:对象流:ObjectInputStream, ObjectOutputStream。相关代码:ObjectStreams.java,ObjectStreamTest.java(序列化深入,可结合《Java核心技术》深入研究)
    字符流:指定编码读写解决乱码问题:InputStreamReader。相关代码:InputStreamReaderTest.java
    字符流:缓冲流、格式化输出。对字符的常用类:BufferedReader、PrintWriter、Scanner(不是流)。相关代码:textfiletest/TextFileTest.java
    随机存取文件:RandomAccessFile(不是流):相关代码:RandomAccessFileTest.java (简单),RandomFileTest.java(复杂,综合案例)

3.2 面向对象设计大作业第二阶段-类的设计与简单代码实现

针对上周的选题。对所要实现的系统,进行类的设计。
该阶段主要包含:

  1. 项目中包的规划。
  2. 类与接口的设计。具体功能实现代码可暂不实现。

3.3 视频

8.5 字节流
8.6 字符流
8.7 缓冲流

3.4 章节测验与讨论

“文件与流”章节测验。将计入线上成绩,请谨慎开始。

课后思考:

  1. 什么时候应该使用输入流、什么时候应该使用输出流?
  2. 你编程时:什么时候使用字节流?什么时候使用字符流?
  3. Java中定义的三个标准输入输出流是什么?它们对应什么?
  4. 使用缓冲流读写可能会造成数据丢失。为什么?
  5. 什么类可以将字节流转化为字符流?利用这个类怎么解决乱码问题?
  6. NIO.2对NIO的主要改进有哪些?
  7. 一个网页文件(html)包含很多链接。如何编程抽取出其中的所有链接?
...全文
701 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
0人已提交
完成率0%
暂无数据
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
CSDN-Ada助手 2023-01-13
  • 打赏
  • 举报
回复
您可以前往 CSDN问答-Java 发布问题, 以便更快地解决您的疑问

4,020

社区成员

发帖
与我相关
我的任务
社区描述
为初学Java的大学生提供一个学习、交流的社区。 社区包括:技术文章、学习任务、在线课程、在线编程练习。
javajava-eeeclipse 高校
社区管理员
  • zhrb
  • 驼同学.
  • 兰翔呀
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

社区板块说明:
1. Java技术:包含Java技术的各种新闻、文章。
2. 教学频道:包含Java基础技术与Java教学中常用的一些文章。建议初学者、在线学习的同学在这里交流、提问、浏览课程学习相关文章。
3. 学习任务:老师发布的教学任务。
4. 其他技术:其他技术文章。

社区链接说明:
1. 在线学习:本社区对应的在线课程(免费学习)。
2. 编程练习:本社区使用的在线编程练习平台(加入在线课程后,免费练习)。
3. 项目实例:一个简单的Java项目示例。
 

试试用AI创作助手写篇文章吧