• Java-IO流系列-FileInputStream和FileOutStream


    FileInputStream和FileOutStream

    测试FileInputstream和FileOutpuStream的使用

    结论:

    1. 对于文本文件(. txt,.java,.c..cpp),使用字符流处理

    2. 对于非文本文件( . jpg ,.mp3, . mp4, .avi,.doc.ppt....), 使用字节流处理

    3. 使用字节流FileInputstream处理文本文件, 可能出现乱码

    package com.dreamcold.io;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.IOException;
    
    public class Demo05 {
        public static void main(String[] args) {
            FileInputStream fis=null;
            try {
                //造文件
                File file=new File("test.txt");
    
                //造流
                fis=new FileInputStream(file);
    
                //读取数据
                byte[] buff=new byte[5];
                int len;
                while((len=fis.read(buff))!=-1){
                    String str=new String(buff,0,len);
                    System.out.println(str);
                }
            }catch (IOException e){
                e.printStackTrace();
            }finally {
                try {
                    if (fis!=null){
                        fis.close();
                    }
                }catch (IOException e){
                    e.printStackTrace();
                }
            }
    
        }
    }
    

    结果

    image-20210117200527012

    对非文本文件的复制

    package com.dreamcold.io;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    
    public class Demo06 {
        public static void main(String[] args) {
            FileInputStream fis=null;
            FileOutputStream fos=null;
            try {
                File srcFile=new File("image.jpg");
                File destFile=new File("image1.jpg");
                fis=new FileInputStream(srcFile);
                fos=new FileOutputStream(destFile);
    
                byte[] buff=new byte[5];
                int len;
                while ((len=fis.read(buff))!=-1){
                    fos.write(buff,0,len);
                }
            }catch (IOException e){
                e.printStackTrace();
            }finally {
                try {
                    if (fis!=null){
                        fis.close();
                    }
                }catch (IOException e){
                    e.printStackTrace();
                }
                
                try {
                    if (fos!=null){
                        fos.close();
                    }
                }catch (IOException e){
                    e.printStackTrace();
                }
            }
    
        }
    }
    

    效果

    image-20210117201522740
    • 该函数可以封装成为一个复制文件的函数
    • 注意缓冲的buf大小最好为1024
  • 相关阅读:
    LightOJ 1030 Discovering Gold(期望)
    CodeForces 567B Berland National Library
    HDU
    HDU
    (模拟、进制转换)
    HDU
    HDU
    CodeForces 429 B B. Working out
    CodeForces 546 D. Soldier and Number Game(素数有关)
    2016中国大学生程序设计竞赛
  • 原文地址:https://www.cnblogs.com/mengxiaoleng/p/14940201.html
Copyright © 2020-2023  润新知