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

实践一 教材代码检查-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);
}
}

运行结果截图

参考资料

《Java程序设计》第15周课堂实践总结的更多相关文章

  1. Java程序设计 第16周 课堂实践 —— 数据库4

    Java程序设计 第16周 课堂实践 -- 数据库4 课堂实践任务4 查询world数据库,查询哪个国家的平均寿命最长. 代码分析 实现查询数据库需要我们修改Message.java,MessageD ...

  2. Java程序设计 第16周 课堂实践 —— 数据库3

    Java程序设计 第16周 课堂实践 -- 数据库3 课堂实践任务3 查询world数据库,获得New Jessey州所有城市的总人口数. 代码分析 实现查询数据库需要我们修改MessageDAO.j ...

  3. Java程序设计 第16周 课堂实践

    Java程序设计 第16周 课堂实践 -- 数据库2 课堂实践任务2 查询world数据库,获得人口超过500万的所有城市的列表. 代码分析 实现查询数据库需要我们修改Message.java,Mes ...

  4. 20145209刘一阳《JAVA程序设计》第九周课堂测试

    第九周课堂测试 1.域名解析服务器(ARP)负责将域名转化为IP地址,从而与主机连接.(B) A .true B .false 2.下列关于URL类的说法,正确的是(BD) A .URL 类自身可根据 ...

  5. 20145209刘一阳《JAVA程序设计》第二周课堂测试

    第二周课堂测试 1.if关键字后面的小括号内,表达式的值可以为10.(B) A .true B .false 2.表达式0xaa | 0x55的值为(C) A .FF B .0 C .255 D .1 ...

  6. 20145209刘一阳《JAVA程序设计》第一周课堂测试

    第一周课堂测试 1.下列不属于Java后继技术的是(D) A .Android B .JSP C .XML D .Python 2.下列关于Java语言特点的描述,正确的一组是(C) A .面向过程: ...

  7. 《Java程序设计》第12周课堂实践总结

    <Java程序设计>第12周课堂实践总结 实践一 教材代码检查-p98 要求 修改教材P98 Score2.java, 让执行结果数组填充是自己的学号: 提交在IDEA或命令行中运行结查截 ...

  8. 20172319 2018.10.19《Java程序设计教程》第7周课堂实践(补写博客)

    20172319 2018.10.19 <Java程序设计教程>第7周课堂实践 课程:<程序设计与数据结构> 班级:1723 学生:唐才铭 学号:20172319 指导老师:王 ...

  9. 20155320 2016-2017-2《Java程序设计》第十二周课堂实践项目

    20155320 2016-2017-2<Java程序设计>第十二周课堂实践项目 1.修改教材P98 Score2.java, 让执行结果数组填充是自己的学号: 2.在IDEA中以TDD的 ...

随机推荐

  1. [合集]解决Python报错:local variable 'xxx' referenced before assignment

    a = 1 def use(): print(a) #输出1 引用不会报错 a = 1 def use(): a = 3 print(a) #输出 3 重新赋值也不会报错. 局部变量会优先在函数内部去 ...

  2. PHP中常用的魔术方法

    我们在PHP中经常用到魔术方法,像构造方法,析构方法等等魔术变量,下面总结一下一些常用的魔术变量: __construct(),__destruct(),__clone(),__autoload(), ...

  3. c#如何将子窗体显示到父窗体的容器(panel)控件中

    如何将一个窗体显示到一个容器控件中,刚开始想的比较简单,用窗体容器控件添加一般控件的方法,试了一试,代码如下: Form2 frm = new Form2(); this.panel1.Control ...

  4. Matlab给三维点云添加高斯噪声和随机噪声

    写在前面 在我们进行点云配准一类的模拟实验时,第一步就是对原始点云进行适当的RT变换,并添加一定的噪声,得到测量点云,然后才可以用我们的算法去进行后面的配准操作.在添加噪声这一块,matlab里并没有 ...

  5. HTML利用posotion属性定位 小技巧

    1.居中效果 父级DIV (index-top )属性设置为 text-align:center; 子级DIV( tabIndex-main)属性设置为 margin:0 auto;   2.左右对齐 ...

  6. WPF tooltip 根据父元素属性决定是否显示

    例如:Placement为disable的时候,需要显示一段tooltip, 而当Placement为enable的时候,不显示 <Button Grid.Row="2" x ...

  7. DOMINO的JDBC和ODBC连接方法

     利用ODBC实现Domino和关系数据库的互操作 Lotus Domino是当今办公自动化系统的主流开发平台之一,Domino自带一个非关系型数据库–文档型数据库,而目前大部分企业的信息都储存在 ...

  8. sqlserver为数据库表增加自增字段

     需求: 数据库为SQLServer.对已有的数据库表customer加一个序号字段,一次性对所有现存客户加上编号,并在新建客户时自动增加一个编号,数值自增1. 解决方法: 1. 复制表结构.把原 ...

  9. canvas验证码 - 随机字母数字

    基于canvas制作随机生成数字英文组合验证码效果,点击或刷新会自动重组.输入验证码提交验证效果代码. <div class="verification"> <i ...

  10. Pig join用法举例

    jnd = join a by f1, b by f2;   join操作默认的是内连接,只有两边都匹配才会保留   需要用null补位的那边需要知道它的模式: 如果是左外连接,需要知道右边的数据集的 ...