zoukankan      html  css  js  c++  java
  • JAVA学习日记23-0728

    今天学了什么

    对综合实例代码进行实验

    package zong;
    import java.io.*;

    public class IOUtils {
    public static void print(byte[] ary) {
    //byte[] ary = {41,4,-2,(byte)0xfe,(byte)0xff};
    for(int b:ary) {
    b &=0xff;
    if(b <= 0xf)
    System.out.print("0");
    System.out.print(Integer.toHexString(b) + " ");
    }
    System.out.println();
    }
    public static byte[] read(String file) {
    try {
    InputStream in = new FileInputStream(file);
    byte[] buf = new byte[in.available()];
    in.read(buf);
    in.close();
    return buf;
    }catch (IOException e) {
    e.printStackTrace();
    throw new RuntimeException(e);
    }
    }
    public static Object deepCopy(Object obj) {
    try {
    ByteArrayOutputStream buf = new ByteArrayOutputStream() ;
    ObjectOutputStream oos = new ObjectOutputStream(buf);
    oos.writeObject (obj);//将对象序列化到byte数组流中
    oos.close () ;
    byte[] ary= buf.toByteArray();
    ObjectInputStream ois = new ObjectInputStream (new ByteArrayInputStream(ary) ) ;
    Object o = ois.readObject();//从 byte数组流中反序列化对象
    ois.close() ;
    return o;
    } catch (Exception e) {
    throw new RuntimeException(e);
    }
    }
    public static void cp(File from,File to) {
    try {
    InputStream in = new FileInputStream(from);
    OutputStream out = new FileOutputStream(to);
    byte[] buf = new byte[1024];
    int n;
    while ((n=in.read(buf))!=-1) {
    //System.out.println("n:"+n) ;
    out.write(buf,0,n);
    }
    } catch (Exception e) {
    e.printStackTrace();
    throw new RuntimeException(e);
    }
    }
    public static void cp1 (File from, File to) {
    try{
    InputStream in= new FileInputStream(from) ;
    OutputStream out = new FileOutputStream(to) ;
    int b;
    while ((b = in.read()) != -1) {
    out.write (b);
    }
    in.close();
    out.close() ;
    } catch (IOException e) {
    e.printStackTrace() ;
    throw new RuntimeException(e) ;
    }
    }
    public static void cp(String from, String to) {
    cp(new File(from),new File(to));
    }
    /**将文件按照16进制形式打印到控制台,每16个byte为一行*/
    public static void print(File file) {
    try {
    InputStream in = new FileInputStream(file) ;
    int b;
    int i=1;
    while ((b = in.read()) != -1) {
    if(b <= 0xf)
    System.out.print("0") ;
    System.out.print (Integer.toHexString(b) + " ");
    if(i++ % 16==0) {
    System. out.println() ;
    }
    }
    System. out.println() ;
    in.close() ;
    } catch (IOException e){
    e.printStackTrace() ;
    throw new RuntimeException(e) ;
    }
    }
    public static void print(String file) {
    print(new File(file));
    }

    public static void split (String file, int size) {
    try {
    if (size <= 0) {
    throw new IllegalArgumentException ("搞啥呀!") ;
    }
    int idx = 0;//文件的序号
    InputStream in = new BufferedInputStream(new FileInputStream(file));
    OutputStream out = new BufferedOutputStream (new FileOutputStream(file+"."+idx++));
    int b;
    int count=0;
    while ((b = in.read()) != -1) {
    out.write(b);
    count++ ;
    if (count % (size * 1024) == 0) {
    out.close() ;
    out = new BufferedOutputStream (new FileOutputStream(file+"."+idx++)) ;
    }
    }
    in.close() ;
    out.close() ;
    } catch (IOException e) {
    e.printStackTrace() ;
    throw new RuntimeException(e) ;
    }
    }

    public static void join(String file) {
    try {
    String filename=file.substring(0,file.lastIndexOf(".")) ;
    String num=file.substring(file.lastIndexOf(".")+1) ;
    int idx = Integer.parseInt (num) ;
    OutputStream out = new FileOutputStream(filename) ;
    File f = new File(filename+"."+idx++) ;
    while (f.exists()) {
    InputStream in =new FileInputStream(f) ;
    cp(in,out);
    in.close() ;
    f= new File(filename+"."+idx++) ;
    }
    out.close();
    f=new File(filename+"."+idx++);
    } catch (Exception e) {
    e.printStackTrace() ;
    throw new RuntimeException(e) ;
    }
    }
    public static void cp(InputStream in,OutputStream out)throws IOException {
    byte[] buf = new byte[1024*512];
    int count;
    while( (count = in.read(buf)) != -1) {
    out.write(buf,0,count);
    }
    out.flush();
    }

    }

    遇到的问题

    代码较长,输入时出行了许多错误,对照手册进行了修改。

    明天计划

    练习JAVA面向对象习题

  • 相关阅读:
    java.util.zip.ZipException:error in opening zip file
    Error loading WebappClassLoader
    J2EE objectcaching frameworks
    【KMS】Cannot forward a response that is already committed
    Web service是什么?
    理解JNDI中 java:comp/env/jdbc/datasource 与 jdbc/datasource 的不同之处
    生活中的MVC架构
    云计算基础交付计算资源的另一种方式
    通俗易懂云计算
    上海联通:释放云的力量
  • 原文地址:https://www.cnblogs.com/a8047/p/13392149.html
Copyright © 2011-2022 走看看