zoukankan      html  css  js  c++  java
  • Java暑期学习第二十九天日报

    一、今日学习的内容:

    今日学习12.3的综合实例的内容。

    二、遇到的问题:

    三、明日计划:

    明天计划学习12.5的课后习题。

    今日学习的具体内容:

    综合实例——写一个工具类,实现读写文件和复制文件

    package test3;
    import java.io.*;
    public class IOUtils {
        public static void main(String[] args) {
            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);
                oos.close();
                byte[] ary=buf.toByteArray();
                ObjectInputStream ois=new ObjectInputStream(new ByteArrayInputStream(ary));
                Object o=ois.readObject();
                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) {
                    out.write(buf,0,n);
                }
                in.close();
                out.close();
            }catch(IOException e) {
                e.printStackTrace();
                throw new RuntimeException(e);
            }
        }
        public static void cpl(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();
            }catch(IOException 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();
        }
    }

    测试截图:

  • 相关阅读:
    python- 冒泡算法
    python-文件读写资料整理
    Python学习之edx6001-week4
    Python学习之自动化开发-DAY1作业-三级菜单
    python学习之自动化开发-DAY1作业-登陆程序
    python 学习之edx6001-week4
    elasticsearch RESTfull _cat api
    python
    python
    python 文件操作
  • 原文地址:https://www.cnblogs.com/Lizhichengweidashen/p/13428825.html
Copyright © 2011-2022 走看看