文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2023-07-06 00:45

关注

这篇文章主要介绍了Java之怎么通过OutputStream写入文件与文件复制的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java之怎么通过OutputStream写入文件与文件复制文章都会有所收获,下面我们一起来看看吧。

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

1.知识点

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

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

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

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

2.写入文件示例

写入对象FILE_FOR_WRITE中

//工具类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");     }}

写入过程

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写入文件与文件复制”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Java之怎么通过OutputStream写入文件与文件复制”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯