20162320MyOD重做版
博客说明
由于上次的MyOD.java没有得分,所以这次我重做了这个java,代码是自己完成的,请教了一些同学的思路。故补交一篇博客来说明我对每一步代码的编写的想法以及理解。
代码片段及理解
1.先创建一个text文件

2.由于涉及文件输出,故需要抛出IOException的异常。调用FileInputStream的类是通过创建一个到实际文件的连接,也就是读入字节流先前创建的text。
public static void main(String[] args) throws IOException {
FileInputStream f1= new FileInputStream(args[0]);
FileInputStream f2 = new FileInputStream(args[0]);
后期运行该代码时需在Edit Configurations指定文件text的路径

3.此段代码使用for循环设置行数,我根据text的内容设置了3行。在显示器的第一行要显示ASCII码,所以调用FileInputStream的read方法,扫入text的字符,当读到最后一个字符时会自动返回-1,所以用while在不等于-1时读文件。toHexString的方法是我求助其他同学得到的,即是把10进制的ASCii码转换为16进制的ASCii码,然后在每一个字符后加一个空格来设置断点。每次读完一个字符就b++,当一行字符读完14个时,就换行,即最后一行代码所示。
int a, b = 0;
for (int i = 0; i <= 3;i++){
while ((a = f2.read()) != -1) {
System.out.print(Integer.toHexString(Integer.valueOf(a + "")) + " ");
b++;
if (b == 15)
break;
}
System.out.println();
4.读入文件步骤同上,主要是(char)a这一步很关键,是因为a原本是10进制的ASCii码,如果不用(char),就会输出一些数字而非原本的字符。然后在后面加两个空格,因为读入文件是读一个字符,而对应的ASCII码是两个字符,所以要多空一个空格。
int c = 0;
while ((a = f1.read()) != -1) {
c++;
System.out.print((char) a + " ");
if (c == 15){
System.out.println();
}
if (c == 15)
break;
}
码云地址
结果截图

实验感想
本次的代码我是完全理解及掌握的,没有像上次那样敷衍,虽然这个版本的MyOD还有一些漏洞,但是达到了基本的实验要求。
20162320MyOD重做版的更多相关文章
- 完美攻略心得之圣魔大战3(Castle Fantisia)艾伦希亚战记(艾伦西亚战记)包含重做版(即新艾伦希亚战记)
(城堡幻想曲3,纠正大家个错误哦,不是圣魔大战3,圣魔大战是城堡幻想曲2,圣魔大战不是个系列,艾伦西亚战记==艾伦希亚战记,一个游戏日文名:タイトル キャッスルファンタジア -エレンシア戦記-リニュー ...
- 如何写一个简单的HTTP服务器(重做版)
最近几天用C++重新写了之前的HTTP服务器,对以前的代码进行改进.新的HTTP服务器采用Reactor模式,有多个线程并且每个线程有一个EventLoop,主程序将任务分发到每个线程,其中采用的是轮 ...
- 攻略三战的完美体验3Castle Fantisia阿兰·梅希亚战争艾伦西战记它包含重做版本(这是新的艾伦·梅希亚大战)
(城堡幻想曲3,纠正大家个错误哦,不是圣魔大战3,圣魔大战是城堡幻想曲2,圣魔大战不是个系列,艾伦西亚战记==艾伦希亚战记,一个游戏日文名:タイトル キャッスルファンタジア -エレンシア戦記-リニュー ...
- 圣魔大战3(Castle Fantisia)艾伦希亚战记完美攻略
作为城堡幻想曲系列续作,艾伦希亚战记继承了前作的战棋+养成模式进行游戏. (城堡幻想曲3,纠正大家个错误哦,不是圣魔大战3,圣魔大战是城堡幻想曲2,圣魔大战不是个系列,艾伦西亚战记==艾伦希亚战记,一 ...
- 圣魔大战3(Castle Fantisia)艾伦希亚战记改动器/秘籍——究极改动大法
艾伦西亚战记== 艾伦希亚战记,是一个游戏 武器:UltraEdit(金山游侠自带的文件改动器也能够,仅仅是这个专业) 目标: 存档文件(建议先备份) 知识:save00.dat-save19.da ...
- 从“差不多了”到 正式发布 -- 新浪微博WinPhone UWP版诞生记
本文粗略记述了UWP团队从接手新浪微博项目到发布第一版的过程.本文不是技术贴,而是回顾“软件工程周期失控是一种怎样的体验”. 接手新项目:捡了个大便宜 2016年1月份,UWP team开始接手新浪微 ...
- (转载)持续集成(第二版)[来自:Martin Fowler]
转载自:iTech的博客 持续集成(第二版) 作者:Martin Fowler 译者:雷镇 持续集成 是一种软件开发实践.在持续集成中,团队成员频繁集成他们的工作成果,一般每人每天至少集成一次,也可以 ...
- mysql之使用xtrabackup进行物理备份、恢复、在线克隆从库、在线重做主从
注:图片来自<深入浅出MySQL 数据库开发 优化与管理维护 第2版> 物理备份和恢复 1.冷备份:停掉mysql再备份,一般很少用,因为很多应用不允许长时间停机,停机备份的可以直接CP数 ...
- 在XP下基于VHD版XP 2003 win7制作的RAMOS心得
在XP下基于VHD版win7制作的RAMOS心得1.用DiskGenius创建1.85G的VHD固定磁盘文件,以win7prosen.vhd为例,然后进行分区格式化,格式化时启用NTFS压缩.2.为了 ...
随机推荐
- MySQL->导出/导入资料[20180521]
MySQL 导出 INTO OUTFILE将资料导出至文件中 mysqldump工具导出资料和数据结构,并且可以针对数据库.数据表.索引的结构. INTO OUTFILE测试 ...
- Docker 学习:制作一个dockerfile
dockerfile, 主要是四部分组成:基础镜像信息.维护者信息.镜像操作指令.容器启动执行指令. step 1: 按照语法,如下写一个centos操作系统的nignx镜像. 然后记得:wq保存和退 ...
- Ionic3环境搭建及创建
初次尝试Ionic,边学习边记录下来,以免以后忘记了,入坑向( ̄ω ̄;) 1.Ionic环境安装 Ionic开发是依赖于Nodejs环境的,所以在开发之前我们需要安装好Nodejs.下载安装:http ...
- SylixOS 系统初探
国产嵌入式硬实时操作系统 SylixOS 初体验 关于 SylixOS 详细了解请见:http://wiki.sylixos.com/index.php/%E7%B3%BB%E7%BB%9F%E7%A ...
- Linux了解一下
VMware与CentOS系统安装 1, 下载CentOS系统ISO镜像: 国内镜像源 https://opsx.alibaba.com/mirror#阿里云官方镜像站 iso下载地址(此DVD映像包 ...
- Docker 运行时的用户与组管理的方法
docker 以进程为核心, 对系统资源进行隔离使用的管理工具. 隔离是通过 cgroups (control groups 进程控制组) 这个操作系统内核特性来实现的. 包括用户的参数限制. 帐户管 ...
- MLT的学习理解
MLT的学习理解 MLT是一个开源的多媒体库,我们的音视频编辑工具,是使用它作为底层支持,某司的'快剪辑'pc版和安卓版,也是用的它. MLT简介 它的GitHub地址,这个库比较老了,现在只有一个作 ...
- 第三次随笔——虚拟机及Linux入门
虚拟机及Linux入门 虚拟机的安装 对于虚拟机的概念我早有接触,但是从来没有真正的实践过,借这次作业机会我终于实践了虚拟机的安装,安装的过程较为顺利,但还是出现了以下问题: 无法选择64位的系统 解 ...
- 20155307 2016-2017第三次《Java程序设计》课堂实践项目
码云链接 我使用电脑端登录的云班课,截图已经放上去了,却忘了点提交.
- apt-get doesn't work
apt-get upgrade Reading package lists... DoneBuilding dependency tree Reading state informatio ...