20175204 张湲祯 2018-2019-2《Java程序设计》2

必做课下作业MyCP

要求

编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数:

java MyCP -tx XXX1.txt XXX2.bin 用来把文本文件(内容为十进制数字)转化为二进制文件

java MyCP -xt XXX1.bin XXX2.txt 用来二进制文件把转化为文本文件(内容为十进制数字)

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

一.设计思路

由于此次作业需要用到第十章输入输出流内容内容,进行了回看。

1.Java将输入/输出抽象化为串流,数据有来源及目的地,衔接两者的是串流对象。

2.从应用程序角度来看,如果要将数据从来源取出,可以使用输入串流,如果要将数据写入目的地,可以使用输出串流。在Java中,输入串流代表对象为java.io.Inputstream实例,输出串流代表对象为java.io.OutputStream实例。

3.在不使用InputStream与utputStream时,必须使用close()方法关闭串流。由于InputStream与OutputStrem操作了java.io.Closeable接口,其父接口为java.lang.AutoCloseable接口。

4.Flie类的对象主要用来获取文件本身的一些信息,例如文件所在的目录、文件的长度或文件的读写特权。

5.流的概念:流是一组有序的数据序列,根据操作的类型,可分为输入流和输出流 I/O(Input/Output)流提供类一条通道程序,可以使用这条通道把源中的字节序列送到目的地;

输入流:(读字符或字节)

InputStream类:是字节输入流的抽象类,是所有字节输入流的父类;

Reader类:是字符输入流的抽象类,所有字符输入流的实现都是他的子类;

输出流:(写字符或字节)

OutputStream类:是多有字节输出流的抽象类,此抽象类是所有字节流的所有类的超类;

Writer类:是字符输出流的抽象类,所有字符输出类的实现都是他的子类;


二.实验代码

import java.*;
import java.io.*;
public class MyCP{
public static void main(String[] args) throws IOException {
//输入十进制文本
String filepath = "D:/JAVA/-tx 十进制.txt";
String s =dataInputStream(filepath);
//将得到的二进制数存成文本
FileOutputStream fps = new FileOutputStream("D:/JAVA/-xt 二进制.txt");
fps.write(s.getBytes());
fps.close();
}
public static String dataInputStream(String filepath) throws IOException {
File file = new File(filepath);
DataInputStream dps = new DataInputStream(new FileInputStream(file));
StringBuilder byData = new StringBuilder();
byte bt = 0;
for(int i=0;i<file.length();i++) {
//以二进制的无符号整数形式返回一个字符串表示形式
bt = dps.readByte();
String str = Integer.toBinaryString(bt);
if(str.length() == 1) {
str = "0"+str;
}
byData.append(str.toUpperCase());
}
return byData.toString();
}
}

三.实验截图

20175204 张湲祯 2018-2019-2《Java程序设计》2的更多相关文章

  1. 2018-2019-2 20175204 张湲祯 实验二《Java面向对象程序设计》实验报告

    2018-2019-2-20175204 张湲祯 实验二 <Java开发环境的熟悉>实验报告 实验二 Java面向对象程序设计 一.实验内容: 初步掌握单元测试和TDD 理解并掌握面向对象 ...

  2. 20175204 张湲祯 2018-2019-2《Java程序设计》第九周学习总结

    20175204 张湲祯 2018-2019-2<Java程序设计>第九周学习总结 教材学习内容总结 -第十一章JDBC和MySQL数据库要点: 1.下载MySQL和客户端管理工具navi ...

  3. 20175204 张湲祯 2018-2019-2《Java程序设计》第八周学习总结

    20175204 张湲祯 2018-2019-2<Java程序设计>第八周学习总结 教材学习内容总结 -第十五章泛型与集合框架要点: 一.泛型 1.泛型(Generics)的主要目的是可以 ...

  4. 20175204 张湲祯 2018-2019-2《Java程序设计》第七周学习总结

    20175204 张湲祯 2018-2019-2<Java程序设计>第七周学习总结 教材学习内容总结 -第八章常用实用类要点: 一.String类: 1.String类所在的包:java. ...

  5. #20175204 张湲祯 2018-2019-2《Java程序设计》第六周学习总结

    20175204 张湲祯 2018-2019-2<Java程序设计>第六周学习总结 教材学习内容总结 -第七章内部类与异常类要点: 一.内部类: Java支持在一个类中定义另一个类,这样的 ...

  6. #20175204 张湲祯 2018-2019-2《Java程序设计》第五周学习总结

    20175204 张湲祯 2018-2019-2<Java程序设计>第五周学习总结 教材学习内容总结 -第六章接口与实现要点: -接口: 1.使用关键字interface定义接口. 2.接 ...

  7. 20175204 张湲祯 2018-2019-2《Java程序设计》第四周学习总结

    20175204 张湲祯 2018-2019-2<Java程序设计>第四周学习总结 教材学习内容总结 -第五章子类与继承要点: -子类与父类: 1.通过使用关键字extends来定义一个类 ...

  8. 20175204 张湲祯 2018-2019-2《Java程序设计》第三周学习总结

    20175204 张湲祯 2018-2019-2<Java程序设计>第三周学习总结 教材学习内容总结 -第四章类与对象要点: -面向对象语言三个特性:封装性:继承:多态: -类:1.类是组 ...

  9. 20175204 张湲祯 2018-2019-2《Java程序设计》第二周学习总结

    20175204 张湲祯 2018-2019-2<Java程序设计>第二周学习总结 教材学习内容总结 -第二章基本数据类型与数组要点: -标识符与关键字:标识符的第一个字符不能是数字字符: ...

随机推荐

  1. Elastic Stack-Elasticsearch使用介绍(二)

    一.前言     写博客,更要努力写博客! 二.Mapping介绍 Mapping类似于数据库中的表结构的定义:这里我们试想一下表结构定义需要那些: 1.字段和字段类型,在Elasticsearch中 ...

  2. 利用ELK分析Nginx日志生产实战(高清多图)

    本文以api.mingongge.com.cn域名为测试对象进行统计,日志为crm.mingongge.com.cn和risk.mingongge.com.cn请求之和(此二者域名不具生产换环境统计意 ...

  3. Django(二)路由系统、视图、模板

    大纲 一.内容概要: 二.上节回顾 三.Django 视图–views  1.获取用户多个数据及文件上传  2.FBV 和 CBV  3.装饰器 四.Django模板补充  - Django模板语言循 ...

  4. 手指向上滑动跳转页面的JQ方法

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  5. 使用FastJson进行对象和JSON转换属性命名规则为下划线和驼峰的问题

    public class AliPayParam { @JSONField(name="out_trade_no") private String outTradeNo; @JSO ...

  6. C# 中使用面向切面编程(AOP)中实践代码整洁

    1. 前言 最近在看<架构整洁之道>一书,书中反复提到了面向对象编程的 SOLID 原则(在作者的前一本书<代码整洁之道>也是被大力阐释),而面向切面编程(Aop)作为面向对象 ...

  7. BZOJ3033太鼓达人——哈密顿回路/欧拉回路

    题目描述 七夕祭上,Vani牵着cl的手,在明亮的灯光和欢乐的气氛中愉快地穿行.这时,在前面忽然出现了一台太鼓达人机台,而在机台前坐着的是刚刚被精英队伍成员XLk.Poet_shy和lydrainbo ...

  8. 线段树-sum/max/min/区间更新

    写一个板子. #include <cstdio> #include <algorithm> using namespace std; +; #define ROOT 1, 1, ...

  9. Linux 下 fcitx 崩溃

    killall fcitx killall sogou-qimpanel fcitx & 输入以上命令

  10. jstl标签库需要两个包jstl.jar和standard.jar

    要使用jstl的标签库,将文件复制到WEB-INF/lib目录下,需要在jsp源文件的首部加入如下声明语句(一般放在page语句之后) 核心(core)   <%@ taglib uri=&qu ...