20155204第15周课堂实践总结
20155204第15周课堂实践总结
一、实践步骤
- 步骤一:首先研究了OD命令的用法:通过学习这篇博客Linux od命令详细介绍及用法实例主要是
-tx
和-tc
,在Linux下实践了一下命令(特别注意-tx[SIZE]是以SIZE字节输出。)
- 步骤二:重新学习了第十章,创建输入输出流,读取文件。
public static byte[] readFile(String file) throws IOException{
InputStream is=new FileInputStream(file) ;
int length=is.available() ;
byte bt[]=new byte[length] ;
is.read(bt) ;
return bt;
}
- 步骤三:接着就是实现16个输出一行,先输出原字符,然后换行输出其ASCII码值,另外还有行号。
public static String format(byte []bt){
int line=0 ;
int par=0;;
StringBuilder buf=new StringBuilder() ;
for(byte d:bt){
if(line%16==0)
buf.append(String.format("%07x: ", line)) ;
if(par == 0) System.out.println(bt[line]+' ');
else buf.append(String.format("%02x ", d)) ;
line++ ;
par=(line/16)%2;
if(line%16==0)
buf.append("\n");
}
buf.append("\n") ;
return buf.toString();
}
成果截图
二、实验中遇到的问题和解决
- 问题1:每行前面的七位数字是什么意思?
- 解决方法:观察得出,是行号,八进制,在程序中通过
buf.append(String.format("%07x: ", line)) ;
实现。 - 问题2:以第十章IO示例程序无法正确读取文件
- 解决方法:因为IO是以byte读取文件,而这里需要用字符来读取文件,所以还是后面的Fileinputstrea更适用。