《Java程序设计》第15周课堂实践总结

java

实践一 教材代码检查-p242

要求

在IDEA中或命令行中运行P242 StackTraceDemo2.java

代码运行结果和教材一致吗?为什么?

代码

/**

* Created by crazymosquito on 2017/3/28.

*/

public class StackTraceDemo2 {

public static void main(String[] args) {

try {

c();

}catch (NullPointerException ex) {

ex.printStackTrace();

}

}

static void c() {

try {

b();

}catch (NullPointerException ex) {

ex.printStackTrace();

throw ex;

}

}

static void b() {

a();

}

static String a() {

String text=null;

return text.toUpperCase();

}

}

我的作答

有区别,因为包不同。

我运行的结果是:at StackTraceDemo2.a(StackTraceDemo2.java:25)

教材上是:at cc.openhome.StackTraceDemo2.a(StackTraceDemo2.java:28)

教材代码上定义了包package cc.openhome;而我的代码则缺省了package的定义。

运行结果截图

实践二 MyOD

要求

编写MyOD.java 用java MyOD XXX实现Linux下od -tx -tc XXX的功能

提交测试代码和运行结果截图,加上学号水印,提交码云代码链接。

深入学习Linux下od命令

命令格式:

od [<选项><参数>] [<文件名>]

-t命令详解:

-t<TYPE>,--format=TYPE:指定输出格式,格式包括a、c、d、f、o、u和x,各含义如下:

a:具名字符;

c:ASCII字符或者反斜杠;

d[SIZE]:十进制,正负数都包含,SIZE字节组成一个十进制整数;

f[SIZE]:浮点,SIZE字节组成一个浮点数;

o[SIZE]:八进制,SIZE字节组成一个八进制数;

u[SIZE]:无符号十进制,只包含正数,SIZE字节组成一个无符号十进制整数;

x[SIZE]:十六进制,SIZE字节为单位以十六进制输出,即输出时一列包含SIZE字节。

代码

IO源代码(教材P305-306)

import java.io.*;

public class IO {

public static void dump(InputStream src, OutputStream dest)

throws IOException {

try (InputStream input = src; OutputStream output = dest) {

byte[] data = new byte[1024];

int length;

while ((length = input.read(data)) != -1) {

output.write(data, 0, length);

}

}

}

}

我的代码

IO.java:

/**

* Created by hp430 on 2017/5/31.

*/

import java.io.*;

public class IO {

public static void dump(InputStream src, OutputStream dest)

throws IOException {

try (InputStream input = src; OutputStream output = dest) {

byte[] data = new byte[1024];

int k=input.read(data,0,data.length);

System.out.println(new String(data));

for(int i=0;i<data.length;i++) {

if(data[i]!=0) {

System.out.printf("%c ",data[i]);

if(i%16==0&&i!=0) {

System.out.println();

}

}

}

System.out.println();

int[] in=new int[data.length];

for(int i=0;i<in.length;i++) {

in[i]=data[i]&0xff;

}

for(int i=0;i<data.length;i++) {

if(in[i]!=0) {

System.out.print(Integer.toString(in[i],0x10)+" ");

if(i%16==0&&i!=0) {

System.out.println();

}

}

}

System.out.println();

/*int length;

while ((length = input.read(data)) != -1) {

output.write(data, 0, length);

}*/

}

}

}

MyOD20155314.java:

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

/**

* Created by hp430 on 2017/5/31.

*/

public class MyOD20155314 {

public static void main(String[] args) throws IOException {

IO.dump(new FileInputStream(args[0]),System.out);

}

}

运行结果截图

参考资料

  • Linux命令(2)——od命令
  • od命令_Linux od 命令用法详解:输出文件的八进制、十六进制等格式编码的字节
  • Linux命令学习手册-od命令
  • 别出心裁的Linux命令学习法 - 娄老师 - 博客园

以上是 《Java程序设计》第15周课堂实践总结 的全部内容, 来源链接: utcz.com/z/391943.html

回到顶部