博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
16位流应用与代码统计器例题
阅读量:6304 次
发布时间:2019-06-22

本文共 1157 字,大约阅读时间需要 3 分钟。

16位流应用:

使用PrintStream进行打印并且输出到控制台以及文本上,每次的输出要带有一个格式为:yyyy-MM-dd  HH:mm:ss 的时间。

首先写一个类继承于PrintStream,然后重写printprintln方法,再替换一下系统的out输出通道。

代码示例:

接着写一个测试类查看实现效果:

代码示例:

运行效果:

控制台:

文本:

FileReader/FileWriter流:

FileReader16位流的文件读取流,里面的方法和8位流基本是一样的,一样的读取方法,有单个字符读取,批量读取和控制范围读取,skip跳过字符方法也有,其实在16流里就是把概念从字节换成了字符而已。

代码示例:

运行结果:

FileWriter16位流里的输出流,里面的方法也是和8位流基本是一样的,也是有单个输出,批量和控制范围输出。所以基本16位流也不需要过多赘述,只要8位流掌握了,16位流只要写几遍基本也就掌握了。

代码示例:

运行结果:

BufferedReader/BufferedWriter流:

一目了然的缓存流,缓存池也是默认为8k,也可以在构造器中更改缓存的大小。16位流的缓存流倒是有个亮点,在16位流里的读取缓存流有个readLine方法可以一行行的读取,读到没有值就会返回一个null

代码示例:

运行结果:

InputStreamReader/OutputStreamWriter流:

InputStreamReader流可以将8位流转换成16位流读取,并且可以在构造器里更改字符集,例如可以更改成UTF-8GB2312等字符集,但是需要注意的是设置的字符集要与文本里的字符集一致,不然读取出来的就是乱码一般的文字。

OutputStreamWriter流可以将16位流转换成8位流输出,同样的可以在构造器中更改字符集,同样要注意的是如果你输出的文本不支持你设置的字符集的话,输出到文本上的内容也是乱码一般的字符。

代码示例:

运行结果:因为Eclipse的文本默认是GBK字符集,所以显示不会出现问题:

制作一个代码统计器:

要完成这个代码统计器需要三个类:1.统计代码行数类 2.搜索后缀为.java文件的搜索类  3.测试类,首先完成统计代码行数类,然后是文件搜索类,最后是实现类。

1. 统计代码行数类:

2.搜索后缀为.java文件的搜索类:

  这个类使用递归查找就可以完成:

3.测试类:

测试类基本就是最简单了,调用完搜索类的方法后就打印countLinefileCount属性就可以了:

运行结果:

本文转自 ZeroOne01 51CTO博客,原文链接:http://blog.51cto.com/zero01/1976629,如需转载请自行联系原作者

你可能感兴趣的文章
唯一正确的修改Jupyter Notebook默认路径的方法
查看>>
Python 基础学习之序列及列表操作小结
查看>>
实验五 网络对抗技术
查看>>
JSP+Servlet+DAO+Javabean模式小记-20171029
查看>>
android drawable size
查看>>
Linux 字符设备控制技术
查看>>
JavaScript循环读书笔记
查看>>
C++模式学习------单例模式
查看>>
PHP基础
查看>>
NUC1429 WERTYU【输入输出】
查看>>
I00027 Java语言程序-打印九九乘法表
查看>>
springBoot访问HTML,jsp文件
查看>>
vue中使用定时器时this指向
查看>>
js代码规范
查看>>
转:环绕通知返回值 object 类型
查看>>
mybatis 乐观锁和逻辑删除
查看>>
课后作业-团队编程项目总结
查看>>
4.Date 日期对象
查看>>
冒泡排序法算法分析
查看>>
linux服务器解压缩文件的命令
查看>>