• 课下作业MyCP的分析


    MyCP


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

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

    截图

    代码截图

    十进制

    二进制

    代码

    import java.io.*;
    
    public class MyCP {
        public static void main(String[] args) throws IOException {
    //输入十进制文本
            String file = "E:/IDEA/IDEA各种源文件/MyCP/shijinzhi.txt";
            String s = dataInputStream(file);
    //得到的二进制数并存成文本
            FileOutputStream txt= new FileOutputStream("E:/IDEA/IDEA各种源文件/MyCP/erjinzhi.txt");
            txt.write(s.getBytes());
            txt.close();
        }
    
        public static String dataInputStream(String file) throws IOException {
    //字节流:InputStream 输入数据
            File Sfile = new File(file);
            DataInputStream Binary = new DataInputStream(new FileInputStream(Sfile));
            StringBuilder newdata = new StringBuilder();
            byte b = 0;
            for (int i = 0; i < Sfile.length(); i++) {//返回一个字符串二进制的无符号整数
                b = Binary.readByte();//按照字节读取
                String str = Integer.toBinaryString(b);
                newdata.append(str);
            }
            return newdata.toString();//toString() 方法返回此对象本身(它已经是一个字符串)。
        }
    }
    
    

    相关知识

    IOException

    throws IOException是Java中的throws语句。
    throws是方法可能抛出异常的声明。(用在声明方法时,表示该方法可能要抛出异常)
    语法:(修饰符)(方法名)([参数列表])[throws(异常类)]{......}
    public void doA(int a) throws Exception1,Exception3{......}

    字节流:输入输出数据

    Java语言定义了许多类专门负责各种方式的输入或者输出,这些类都被放在java.io包中。其中,
    所有输入流类都是抽象类InputStream(字节输入流),或者抽象类Reader(字符输入流)的子类;
    而所有输出流都是抽象类OutputStream(字节输出流)或者Writer(字符输出流)的子类。
    InputStream类是字节输入流的抽象类,是所有字节输入流的父类,InputStream类具有层次结构如下图所示;
    java中的字符是Unicode编码的,是双字节的。InputStream是用来处理字节的,在处理字符文本时很不方便。Java为字符文本的输入提供了专门的一套类Reader。Reader类是字符输入流的抽象类,所有字符输入流的实现都是它的子类。
    输出流OutputStream类是字节输入流的抽象类,此抽象类表示输出字节流的所有类的超类。

    出现的问题

    定义的文件名已经被使用,出现错误

    解决方法:
    如代码所示,更换文件名即可。随意起名“Sfile”

    代码托管

    参考资料

    Java中IO流,输入输出流概述与总结

  • 相关阅读:
    Jenkins学习记录(三)
    Jenkins学习记录(二)
    并发编程
    黏包及解决方法
    socket通信,三次握手,四次挥手
    异常处理
    元类与魔法方法
    封装方法与多态
    组合与封装
    继承
  • 原文地址:https://www.cnblogs.com/ldc175206/p/10786678.html
Copyright © 2020-2023  润新知