首页 > Java > java教程 > 正文

Java之怎么通过OutputStream写入文件与文件复制

PHPz
发布: 2023-04-13 17:18:07
转载
2806人浏览过

    通过OutputStream写入文件与文件复制

    1.知识点

    1,首先不管是inputstream读read,还是outputstream写write,都支持读写一定长度的byte[]。

    2,当然,还支持一个字节一个字节的读写,那么一个字节一个字节的读写,读出来的字节和写入的字节都是用的int类型的参数。

    3,int参数只会使用它的8个二进制位,也就是说类似于将int强行转换为byte,我感觉很无聊的设计,还不如直接用byte作为参数,这样搞是因为int太火吗?

    4,所以所谓的复制,就是把所有的字节读出来,然后写入文件即可。

    2.写入文件示例

    写入对象FILE_FOR_WRITE中

    立即学习Java免费学习笔记(深入)”;

    //工具类
    package com.maoge.stream;
    import java.io.File;
    public class StreamUtils {
        //用于定义每次读取的长度
        public static final int BUFFER_LENGTH=512;
        //文件对象
        public static File FILE_FOR_READ;
        public static File FILE_FOR_WRITE;
        static{
            FILE_FOR_READ=new File("C:\test.txt"); 
            FILE_FOR_WRITE=new File("C:\result.txt"); 
        }
    }
    登录后复制

    写入过程

    巧文书
    巧文书

    巧文书是一款AI写标书、AI写方案的产品。通过自研的先进AI大模型,精准解析招标文件,智能生成投标内容。

    巧文书 61
    查看详情 巧文书
    package com.maoge.stream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.OutputStream;
    public class OutputStreamDemo {
        public static void main(String[] args){
            writeToFile();
        }
        public static void writeToFile(){
            byte buffer[]=buffer=new String("hello world!").getBytes();
            OutputStream out=null;
            try {
                out = new FileOutputStream(StreamUtils.FILE_FOR_WRITE);
                out.write(buffer, 0, buffer.length);
            } catch (Exception ex) {
                System.out.println(ex.toString());
            }finally{
                try {
                    out.close();
                } catch (IOException ioEx) {
                    System.out.println(ioEx.toString());
                }
            }    
        }
    }
    登录后复制

    3.文件复制示例

    直接演示复制图片,因为图片也是二进制位组成的

    源文件test.jpg这个需要找个图片,目的文件result.jpg这个是复制后生产的

    //工具类
    package com.maoge.stream;
    import java.io.File;
    public class StreamUtils {
        //用于定义每次读取的长度
        public static final int BUFFER_LENGTH=512;
        //文件对象
        public static File FILE_FOR_READ;
        public static File FILE_FOR_WRITE;
        static{
            FILE_FOR_READ=new File("C:\test.jpg"); 
            FILE_FOR_WRITE=new File("C:\result.jpg"); 
        }
    }
    登录后复制

    复制过程,该方法是OutputStreamDemo类的静态方法。

    public static void fileCopy(){
            FileInputStream in=null;
            FileOutputStream out=null;
            try {
                in=new FileInputStream(StreamUtils.FILE_FOR_READ);
                out=new FileOutputStream(StreamUtils.FILE_FOR_WRITE);
                int c;
                while((c=in.read())!=-1)
                    out.write(c);
            } catch (Exception ex) {
                System.out.println(ex.toString());
            }finally{
                try {
                    in.close();
                } catch (IOException ioEx) {
                    System.out.println(ioEx.toString());
                }
                try {
                    out.close();
                } catch (IOException ioEx) {
                    System.out.println(ioEx.toString());
                }
            }
        }
    登录后复制

    java写入文件问题(FileOutputStream的使用)

    实现在控制台写入相关文字,并添加到指定的文件中,并实现读取文件内容

    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.util.Scanner;
     
    public class Fileout {
        Scanner inScanner = new Scanner(System.in);
        public void f(String address) throws IOException
        {
        
        FileOutputStream out=new FileOutputStream(address, true);
        String buf;
        System.out.println("请输入");
        buf= inScanner.nextLine();
        byte buy[]=buf.getBytes();
        out.write(buy);
        
        FileInputStream fin=new FileInputStream(address);    
        byte[] bs=new byte[1024];    
        int count=0;    
     
        while((count=fin.read(bs))>0)                
        {
        
            
            String str=new String(bs,0,count);    //反复定义新变量:每一次都 重新定义新变量,接收新读取的数据
     
            System.out.println(str);        //反复输出新变量:每一次都 输出重新定义的新变量
        }
        fin.close();
        }
        public static void main(String[] args) throws IOException {
            
            Fileout out=new Fileout();
            out.f("f://student.txt");    
        }
    }
    登录后复制

    以上就是Java之怎么通过OutputStream写入文件与文件复制的详细内容,更多请关注php中文网其它相关文章!

    相关标签:
    java速学教程(入门到精通)
    java速学教程(入门到精通)

    java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

    下载
    来源:亿速云网
    本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
    最新问题
    开源免费商场系统广告
    热门教程
    更多>
    最新下载
    更多>
    网站特效
    网站源码
    网站素材
    前端模板
    关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送
    PHP中文网APP
    随时随地碎片化学习

    Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号