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.为了 ...
随机推荐
- 19-3-13Python中的函数
def:关键字.定义.声明一个函数. def make():定义函数'make' *注:定义后的函数不调用是不执行的 函数的调用: 函数名+()==函数的调用 def addnum(): a = in ...
- NFS网络文件系统
FFS服务端概述 NFS,是Network File System的简写,即网络文件系统.网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS: NFS允许一个系统在网络上与他人共享目录 ...
- Redis API的理解与使用
目录 一.通用命令 二.数据结构与内部编码 三.单线程架构 一.通用命令 Redis有五种数据结构,它们是键值对中的值,对于键来说有一些通用的命令.Redis的全局通用命令有:keys,dbsize, ...
- MySQLFront导入SQL文件报#1113错误解决
- android studio 插件开发(自动生成框架代码插件)
android studio 插件开发 起因 去年公司开始上新项目,正好android在架构这方面的讨论也开始多了起来,于是mvp架构模型就进入我们技术选择方案里面,mvp有很多好处,但是有一个非常麻 ...
- WPF实现拖拽功能
技术点:WPF的Behaviors实现了对象的行为附加,Microsoft.Expression.Interactions程序集中包含了若干Behaviors,其中MouseDragElementBe ...
- 20155233 《Java程序设计》实验四 Android开发基础
20155233 <Java程序设计>实验四 Android开发基础 实验内容 1.基于Android Studio开发简单的Android应用并部署测试; 2.了解Android组件.布 ...
- Python中的对象引用、浅拷贝与深拷贝
最近项目中遇到一个Python浅拷贝机制引起的bug,由于对于Python中对象引用.赋值.浅拷贝/深拷贝机制没有足够的认识,导致调试了很久才发现问题,这里简单记录一下相关概念. 在Python的设计 ...
- 回顾RAC安装过程中对ASM的处理
1 首先建立好节点间共享的磁盘,要注意从各节点看到的磁盘的序号.名称一致. 2 通过某一个节点,对共享磁盘进行格式化. 3 在Grid Infrastructure 中, 有一个为OCR选择存储介质的 ...
- [BZOJ1565][NOI2009]植物大战僵尸-[网络流-最小割+最大点权闭合子图+拓扑排序]
Description 传送门 Solution em本题知识点是用网络流求最大点权闭合子图. 闭合图定义:图中任何一个点u,若有边u->v,则v必定也在图中. 建图:运用最小割思想,将S向点权 ...