栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java-使用io流实现txt的复制

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java-使用io流实现txt的复制

package com.Class06.Stream;

import java.io.*;


public class CopyDemo {

    public static void main(String[] args) {

        File fileIn = new File("In.txt");
        File fileOut = new File("Out.txt");
        InputStream inputStream = null;
        OutputStream outputStream = null;

        try {
            inputStream = new FileInputStream(fileIn);
            outputStream = new FileOutputStream(fileOut);

            byte[] buffer = new byte[1024];
            int length = 0;
            while( (length = inputStream.read(buffer)) != -1){
                System.out.println(new String(buffer,0,length));
                outputStream.write(buffer);
            }

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }catch(IOException e){
            e.printStackTrace();
        }finally {
            try {
                inputStream.close();
                outputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        System.out.println("End");
    }
}

如上,虽然以这种方法可以实现buffer的整体复制,但此处调用的write方法未输入长度,即默认全部复制buffer内容。

此时,倘若我们的buffer大小设置过大,而我们未全部填满的时候,剩余空间会被默认填满“0”,以这种write方法进行copy的时候,我们会把大量的0也一起copy过来,这里,我们添加一个遍历,获取准确的buffer有效数据长度后再进行复制。

            int Count = 0;
            for( int i = 0; i < buffer.length; i++){
                if( buffer[i] != 0)
                    Count++;
            }
            System.out.println(Count);
            outputStream.write(buffer,0,Count);
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/396773.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号