• 字节流


    (一)输入流:

       InputStream

    File file=new File("E:/test/2.txt");
                InputStream is=new FileInputStream(file);//多态,输入流文件子类
                byte[] by=new byte[1024];    //每次装载的容量
                int len=0;
                
                    while(-1!=(len=is.read(by)))    //读到by字节数组里,每次读1024个字节
                    {
                        //循环一次就把一次的数据给str--->字节数组转化为字符串
                        String str=new String(by,0,len);    
                        System.out.print(str);
                    }

    (二)输出流

        OutputStream

           File file=new File("E:/test/2.txt");
                /*追加形式为true*/
                OutputStream os=new FileOutputStream(file,true);
                String str="dfjkdfmckdi idi jdk kd
    ";
                /*字符串转为字节数组*/
                byte[] data=str.getBytes();  //输出数据是字节数组,转化为字节
                os.write(data);
                os.flush();

     (三)复制文件

        CopyFile

    File src=new File("E:/test/1.jpg");
            File dest=new File("E:/test/10.jpg");
            InputStream is=new FileInputStream(src);
            OutputStream os=new FileOutputStream(dest);
            byte[] data=new byte[1024];
            int len=0;
            while((len=is.read(data))!=-1)    //读取数据返回长度
            {
                os.write(data, 0, len);
            }
            os.close();
            is.close();

    (四)复制文件与文档

      CopyDirFile

      

    package ByteStreamDemo;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    
    public class CopyDirDemo2 {
    
        public static void main(String[] args) throws IOException {
            File src = new File("E:/test/abc");
            File dest = new File("E:/test/dir/aa");
            CopyDir(src, dest);
        }
    
        public static void CopyDir(File src, File dest) throws IOException {
            /**
             * 1.传两个路径过来
             * 2.如果源文件是目录,目标文件就创建完整路径
             * 3.循环取出源文件下的子文件。(子文件源文件File对象,新建一个目标文件
             * 路径加名字)[abc/abcd] [abc/1.txt] [10.jpg]------>
             * 目标File对象[..aa/abcd][..aa/1.txt][..aa/10.jpg]
             */
            if (src.isDirectory()) {
                dest.mkdirs();
                for (File sub : src.listFiles()) {
                    /*sub.getName() 取最后一级文件或文件夹*/
                    CopyDir(sub, new File(dest, sub.getName()));//
                }
    
            } else if (src.isFile()) {
                CopyFile(src, dest);
            }
    
        }
    
        public static void CopyFile(File src, File dest) throws IOException {
    
            InputStream is = new FileInputStream(src);
            OutputStream os = new FileOutputStream(dest);
            byte[] data = new byte[1024];
            int len = 0;
            while ((len = is.read(data)) != -1) // 读取数据返回长度
            {
                os.write(data, 0, len);
            }
            os.close();
            is.close();
        }
    
    }
  • 相关阅读:
    webserver项目的知识点
    Java处理List集合数据进行分页展示
    Java导出Excel文件,在Wps上可以打开但是Office上打不开的问题
    Java导出Excel内容有问题_关于 NPOI 导出的 Excel 出现“部分内容有问题” 的解决方法
    java使用postman导出execl文件名一直为response.xls问题
    windows如何把已安装的nodejs高版本降级为低版本
    px,em,rem的区别(补充vh和vw的)
    arr=[];与arr.length=0;的区别
    微信小程序引用 iconfont
    MySQL存储过程使用动态表名
  • 原文地址:https://www.cnblogs.com/yugeng/p/8060418.html
Copyright © 2020-2023  润新知