201521123057 《Java程序设计》第12周学习总结

1. 本周学习总结

1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容。
1109696-20170513195052832-1081984871.png

2. 书面作业

1.字符流与文本文件:使用 PrintWriter(写),BufferedReader(读)

将Student对象(属性:int id, String name,int age,double grade)写入文件student.data、从文件读出显示。
1.1 生成的三个学生对象,使用PrintWriter的println方法写入student.txt,每行一个学生,学生的每个属性之间用|作为分隔。使用Scanner或者BufferedReader将student.txt的数据读出。(截图关键代码,出现学号)
1109696-20170513100214816-294143328.png

1109696-20170513100220754-51767136.png

1.2 生成文件大小多少?分析该文件大小
1109696-20170513100517816-1452718584.png

生成文件大小:49字节
第一行Student类型数组的长度(int):1字节
学生id(int):1字节
学生姓名(String):4字节
学生年龄(int):2字节
学生成绩(Double):4字节
分隔符(每行有3个):3字节
一共有3行学生信息:16*3+1=49字节

1.3 如果调用PrintWriter的println方法,但在后面不close。文件大小是多少?为什么?

文件大小变为0kb,使用close()方法关闭此流,但要先刷新它flush()
一次 flush() 调用将刷新 Writer 和 OutputStream 链中的所有缓冲区
缓冲区数据的没有真正实现写出,数据丢失

2.缓冲流

2.1 使用PrintWriter往文件里写入1千万行(随便什么内容都行),然后对比使用BufferedReader与使用Scanner从该文件中读取数据的速度(只读取,不输出),使用哪种方法快?请详细分析原因?提示:可以使用junit4对比运行时间

BufferedReader更快,BufferedReader使用了缓存技术
(图见下题)

2.2 将PrintWriter换成BufferedWriter,观察写入文件的速度是否有提升。记录两者的运行时间。试分析原因
参考:本题具体要求见流与文件实验任务书-题目1-2.1到2.3
1109696-20170513193530176-857954006.png

BufferedWriter使用了缓冲技术

3.字符编码

3.1 现有EncodeTest.txt 文件,该文件使用UTF-8编码。使用FileReader与BufferedReader将EncodeTest.txt的文本读入并输出。是否有乱码?为什么会有乱码?如何解决?(截图关键代码,出现学号)

乱码:EncodeTest.txt的编码方式UTF-8与GBK不同,导致乱码

1109696-20170513112641722-406549857.png

3.2 编写一个方法convertGBK2UTF8(String src, String dst),可以将以GBK编码的源文件src转换成以UTF8编码的目的文件dst。
参考:InputStreamReaderTest.java与教学PPT
1109696-20170513114604879-1872186892.png

4.字节流、二进制文件:DataInputStream, DataOutputStream、ObjectInputStream

4.1 参考DataStream目录相关代码,尝试将三个学生对象的数据写入文件,然后从文件读出并显示。(截图关键代码,出现学号)
1109696-20170513161849597-819487679.png

4.2 生成的文件有多大?分析该文件大小?将该文件大小和题目1生成的文件对比是大了还是小了,为什么?

变大了
学生id(int):4字节
学生姓名(String):8字节
学生年龄(int):4字节
学生成绩(Double):8字节
一共有3行学生信息:(4+8+4+8)*3=72字节

4.3 使用wxMEdit的16进制模式(或者其他文本编辑器的16进制模式)打开student.data,分析数据在文件中是如何存储的。
1109696-20170513200132488-1366666943.png
在截图中可以发现id=1 对应00000001,推断数据是按照其类型占不同大小的字节

4.4 使用ObjectInputStream(读), ObjectOutputStream(写)读写学生。(截图关键代码,出现学号) //参考ObjectStreamTest目录
参考:本题具体要求见流与文件实验任务书-题目1-1
1109696-20170513185256707-113127541.png

5.基本概念

编写public static List readStudents(String fileName);从fileName指定的文本文件中读取所有学生,并将其放入到一个List中。应该使用那些IO相关的类?说说你的选择理由。
参考:TextFileTest目录下TextFileTest.java
1109696-20170513183500941-907668717.png

为了达到最高效率,可要考虑在 BufferedReader 内包装 InputStreamReader。例如:BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

7.文件操作

编写一个程序,可以根据指定目录和文件名,搜索该目录及子目录下的所有文件,如果没有找到指定文件名,则显示无匹配,否则将所有找到的文件名与文件夹名显示出来。
7.1 编写public static void findFile(String path,String filename)函数,以path指定的路径为根目录,在其目录与子目录下查找所有和filename相同的文件名,一旦找到就马上输出到控制台。(截图关键代码,出现学号)
1109696-20170513203409144-1913546021.png

8.正则表达式

8.1 如何判断一个给定的字符串是否是10进制数字格式?尝试编程进行验证。(截图关键代码,出现学号)
参考:本题具体要求见流与文件实验任务书-题目3
1109696-20170513191033222-1115915928.png

3. 码云及PTA

3.1. 码云代码提交记录

在码云的项目中,依次选择“统计-Commits历史-设置时间段”, 然后搜索并截图
1109696-20170513201148582-797028832.png

转载于:https://www.cnblogs.com/wufuckshuo/p/6834183.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/429302.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux 管道文件上机总结,[转载]LINUX 管道 fifo 等总结

Linux进程通信:命名管道FIFO小结Linux下进程之间通信可以用命名管道FIFO完成。命名管道是一种特殊类型的文件,因为Linux中所有事物都是文件,它在文件系统中以文件名的形式存在。在程序中,我们可以使用两个不同的函数调用来建立管道…

tomcat 下载

点project 关闭防火墙才可以让别人访问自己 转载于:https://www.cnblogs.com/feathe/p/6853491.html

linux消息框架,远程处理器消息框架 - 基于Linux 简化 AMP 配置使其更方便更动态地分配资源...

核心的 rpmsg 框架起到开关的作用,根据消息中包含的目的地址将消息传送到相应端点。由于消息报头包含源地址,因此可在不同处理器之间建立专用连接。命名服务处理器可通过向 rpmsg 框架的命名服务发送消息,以动态宣布特定服务。命名服务功能本…

洛谷 P3366 【模板】最小生成树

题目描述 如题&#xff0c;给出一个无向图&#xff0c;求出最小生成树&#xff0c;如果该图不连通&#xff0c;则输出orz 输入输出格式 输入格式&#xff1a;第一行包含两个整数N、M&#xff0c;表示该图共有N个结点和M条无向边。&#xff08;N<5000&#xff0c;M<200000…

陇东学院c语言程序设计,C语言程序设计

spContent《C语言程序设计》是高等学校本科教育普遍开设的一门课程&#xff0c;是广大程序设计语言学习者首选的入门课程。本课程立足于C语言基础知识的讲解&#xff0c;讲授中引入大量实例&#xff0c;突出重点&#xff0c;剖析难点&#xff0c;培养学生结构化程序设计的思想&…

关于android:windowNoTitle不起作用的解决办法

今天测试一个新功能的时候&#xff0c;在styles.xml设置<item name"android:windowNoTitle">true</item>并没有生效&#xff0c;当时很奇怪&#xff0c;以前的项目都这么设置的&#xff0c;并且都能生效&#xff0c;后来发现MainActivity继承的是AppComp…

jQuery笔记——选择器

jQuery 最核心的组成部分就是&#xff1a;选择器引擎。它继承了 CSS 的语法&#xff0c;可以对 DOM 元 素的标签名、属性名、状态等进行快速准确的选择&#xff0c;并且不必担心浏览器的兼容性 常规选择器 根据id选择元素就是使用#&#xff0c;还有两种其他选择元素的方式&…

c语言实现NRZ编码,CSC1001-课后笔记

前言&#xff1a;为什么编写此文1. 根据费曼的学习方法Pretend to teach your topic to a classroom. Make sure youre able to explain the topic in simple terms. 假装你在教室里向学生解释这个主题&#xff0c;用尽量简单的词汇去描述它&#xff0c;力求学生能听懂。(听众…

LeetCode 111. Minimum Depth of Binary Tree

原题 Given a binary tree, find its minimum depth. The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node. 思路一 类似于求最大深度时的递归思路不过需要注意的是当某一节点的左子节点(右子节点类似)为空时…

c语言编程流水灯与交通灯实验,C51单片机实验报告_流水灯_交通灯_定时器_双机交互_时钟.doc...

C51单片机实验报告_流水灯_交通灯_定时器_双机交互_时钟学 号&#xff1a;班 级&#xff1a; 自动化10班姓 名&#xff1a; 张指导老师&#xff1a; 胡2012.12单片机核心板实验要求流水灯实验实验目的&#xff1a;简单I/O引脚的输出掌握软件延时编程方法简单按键输入捕获判断完…

angularjs中的分页指令

自定义指令 import angular from angular;/*** ngdoc module* name components.page* description 分页directive*/ export default angular.module(pageDirective, []).directive(ngPage, function () {return {restrict: E,scope: {totalCount: ,pageSize: ,param: ,pageItme…

金币问题c语言程序,【求助】急请c语言高手帮忙解决程序问题(问题已经被我自己解决,金币送给自己啦)...

不好意思&#xff0c;这是程序后面部分&#xff1a;RHOMOLL,double* X, double& DRHODT);void (__stdcall *FGCTYdll)(double& TK, double& RHOMOLL,double* X, double& FUGACITY);// The following ifdef block is…

xv6/调度算法及并发程序设计

1 在proc.c的scheduler函数中&#xff0c;有两行&#xff1a; if(setjmp(&cpus[cpu()].jmpbuf) 0) longjmp(&p->jmpbuf); 把它修改为&#xff1a; cprintf("setjmp called in scheduler\n"); if(setjmp(&cpus[cpu()].jmpbuf) 0){ cprintf(&qu…

c语言四舍五入取整向上取整,C 语言常用的函数(ceil-向上取整,floor-向下取整,round-四舍五入)...

释放双眼&#xff0c;带上耳机&#xff0c;听听看~&#xff01;1.ceil函数(向上取整)extern float ceilf(float); //参数为flot类型extern double ceil(double); //参数为double类型extern long double ceill(long double); //参数为long double类型举例&#xff1a;向上取整函…

PHP函数之HTMLSPECIALCHARS_DECODE

PHP函数之htmlspecialchars_decode htmlspecialchars_decode &#xff1a;将特殊的 HTML 实体转换回普通字符 htmlspecialchars&#xff1a; 将普通字符转换成实体转载于:https://www.cnblogs.com/lovebing/p/6866484.html

c语言中printk用法,printk和printf的区别

&&&大部分常用的C库函数在Linux内核中都已经得到了实现。在所有没有实现的函数中&#xff0c;最著名的就数printf()函数了。内核代码虽然无法调用printf()函数&#xff0c;但它可以调用printk()函数。printk()函数负责把格式化好的字符串拷贝到内核日志缓冲上&…

《Java技术》第八次作业

《Java技术》第八次作业 &#xff08;一&#xff09;学习总结 1.用思维导图对本周的学习内容进行总结。 2.通过实验内容中的具体实例说明在执行executeUpdate&#xff08;&#xff09;方法和executeQuery&#xff08;&#xff09;方法中使用动态参数时&#xff0c;为什么要使用…

android 短信 aapp,谈谈App的统一跳转和ARouter

App中每次页面跳转,都需要调用统一导航, 它用的非常频繁, 有必要对它进行一下梳理. 让他能用起来简单方便, 同时能支持各种常用的跳转业务场景.一. Android跳转遇到的问题1.intent-filter跳转不好管理Intent intent new Intent();intent.setAction(Intent.ACTION_SENDTO);inte…

android 自定义spnner弹出框,PopupWindow,ListView实现自定义Spinner

最终的效果图,点击86弹出popup这里写图片描述PupupWindow的布局文件为一个ListView 作为pupup的主体内容android:orientation"vertical"android:layout_width"match_parent"android:layout_height"match_parent">android:id"id/register…

hdu 6026 Deleting Edges(最短路计数)

题目链接&#xff1a;hdu 6026 Deleting Edges 题意&#xff1a; 给你n个点&#xff0c;和一个邻接矩阵&#xff0c;非0表示有边&#xff0c;0表示没边。 现在让你删一些边&#xff0c;构成一棵树&#xff0c;使得每个点到0这个点的距离为没删边之前的最短路。 问有多少棵这样的…