惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Recent Announcements
Recent Announcements
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Martin Fowler
Martin Fowler
The Cloudflare Blog
The Register - Security
The Register - Security
WordPress大学
WordPress大学
量子位
Vercel News
Vercel News
C
Check Point Blog
V
Visual Studio Blog
Microsoft Azure Blog
Microsoft Azure Blog
J
Java Code Geeks
B
Blog RSS Feed
Stack Overflow Blog
Stack Overflow Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Jina AI
Jina AI
Apple Machine Learning Research
Apple Machine Learning Research
PCI Perspectives
PCI Perspectives
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
美团技术团队
Schneier on Security
Schneier on Security
O
OpenAI News
M
MIT News - Artificial intelligence
S
Secure Thoughts
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Application and Cybersecurity Blog
Application and Cybersecurity Blog
S
Security Affairs
雷峰网
雷峰网
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
小众软件
小众软件
MongoDB | Blog
MongoDB | Blog
云风的 BLOG
云风的 BLOG
N
News and Events Feed by Topic
大猫的无限游戏
大猫的无限游戏
Google DeepMind News
Google DeepMind News
Recorded Future
Recorded Future
S
Security @ Cisco Blogs
www.infosecurity-magazine.com
www.infosecurity-magazine.com
C
Cyber Attacks, Cyber Crime and Cyber Security
GbyAI
GbyAI
L
LINUX DO - 最新话题
The Last Watchdog
The Last Watchdog
C
CERT Recently Published Vulnerability Notes
aimingoo的专栏
aimingoo的专栏
V
V2EX
博客园 - 【当耐特】
Last Week in AI
Last Week in AI
P
Proofpoint News Feed
阮一峰的网络日志
阮一峰的网络日志

博客园 - zhrb

使用 OpenCode+DeepSeek 进行Java编程 使用AI辅助编写报告的建议 Windows命令行简易入门 2026-适合初学者的"Windows+OpenClaw(小龙虾)+DeepSeek+飞书、QQ、微信"的安装与使用 AI驱动:90分钟Maven项目实战入门 第14周 预习、实验与作业:Java JDBC编程 第13周 预习、实验与作业:Java网络编程 第12周 预习、实验与作业:Java并发编程 基于AI辅助的Java程序设计贯穿式教学案例 第10周 预习、实验与作业:异常处理机制 使用AI帮你写Java程序 第09周 预习、实验与作业:Java集合框架 第08周 预习、实验及作业:Java GUI编程 使用AI编写Java GUI程序的入门指南(Powered by DeepSeek) 第07周 期中复习(面向对象部分) 第06次 预习、实验与作业:接口与嵌套类 第05周 预习、实验与作业:继承与多态 第04周 预习、实验与作业:类的设计与继承 第03周 预习、实验与作业:面向对象入门2与类的识别 第02周 预习、实验与作业:Java基础语法2、面向对象入门
第11周 预习、实验与作业:Java I/O流与文件
zhrb · 2025-11-11 · via 博客园 - zhrb

第11周 预习、实验与作业:Java I/O流与文件

1. 预习

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

1.1 学习目标

  1. 理解与掌握Java I/O流编程技术:能区分与使用字节流、字符流读写数据,掌握组合过滤流的编程模式。
  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 CodeHex Editor插件打开一个文本文件。在文本文件中输入"123abc中文"。观察:一个英文或数字字符占几个字节,一个中文字符占用几个字节。在Java程序中,使用字节流怎么将这个文件中的数据正确读取并组装起来。
  5. 有一个stus数组,里面有若干Student对象(String name, int age, boolean gender, double score)。要将这些对象高效率地存储到文件中,需要使用哪些流?使用二进制流与使用字符流将这个数组存储到文件有何不同?使用二进制流与使用字符流从文件中读取并组装成对象有何不同?
  6. 使用什么类可以对文件进行随机存取?读写的单位是什么?为什么不是字符呢?

2.实验

  1. 实验链接:https://www.cnblogs.com/zhrb/p/6834084.html
    • 提前完成“第1次实验”之“0.字节流与二进制文件”请实验课联系助教检查加分

3.课后任务(作业)

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

3.1 课后复习指导

  1. 总结:询问AI"使用Java I/O流编写代码的一般模式"。
  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(复杂,综合案例)
    4.线上课程讨论:(先自己思考并尝试回答,再通过AI寻求答案进行验证)
    • 8.3 什么时候应该使用输入流、什么时候应该使用输出流?
    • 8.3 Java中定义的三个标准输入输出流是什么?它们对应什么?
    • 8.4 NIO.2对NIO的主要改进有哪些?
    • 8.6 什么时候使用字节流?什么时候使用字符流?
    • 8.6 什么类可以将字节流转化为字符流?怎么利用这个类怎么解决乱码问题,尝试给出示例代码。
    • 8.7 使用缓冲流读写可能会造成数据丢失。为什么?
    • 8.9 一个网页文件(html)包含很多链接。如何结合使用Java流技术与jsoup编程抽取出其中的所有链接?尝试按步骤说明

3.2 在线学习平台

  1. 视频
    8.5 字节流
    8.6 字符流
    8.7 缓冲流
  2. 章节测验
    限时完成:章节测验7(异常)。

3.3 课堂派(案例4-使用文件改造学生管理或购物车系统)

案例4:改造学生管理系统或购物车系统,添加基于文本文件或基于二进制文件的存储系统。请使用Markdown格式编写此报告。完成后检查加分。

3.4 课程设计选题

参考Java课程设计进行课程设计选题。可使用AI辅助完成选题、初步设计、难度评估、人员分组。最终使用报告的模式初步完成。

拓展

课外阅读:查询如何通过与AI大模型工具进行多轮对话迭代完成复杂任务。