zoukankan      html  css  js  c++  java
  • JAVASE02-Unit07: 基本IO操作 、 文本数据IO操作

         基本IO操作 、 文本数据IO操作    

    java标准IO(input/output)操作

    package day07;
    
    import java.io.FileOutputStream;
    import java.io.IOException;
    
    /**
     * java标准IO(input/output)操作
     * 输入流InputStrean:用于从数据源读取数据到程序中
     * 输出流OutputStream:用于将数据发送至目标
     * 
     * 流划分为:节点流,处理流
     * 节点流:又叫做低级流,特点:数据源明确,真实负
     *        责"搬运"数据的流读写的基础是节点流
     * 处理流:又叫高级流,特点:不能独立存在(没有意义),
     *        用来处理其他流,目的是简化读写操作
     *        
     * 文件流
     * 文件流是低级流,因为数据源明确,就是读写文件的
     * 
     * 文件输出流:java.io.FileOutputStream
     * 用于将数据写入到文件中       
     * 
     * @author adminitartor
     *
     */
    public class FileOutputStream_Write {
        public static void main(String[] args) throws IOException {
            /*
             * 文件流有两种常用模式:
             * 覆盖写操作,当构造方法只传入一个参数时:
             * FileOutputStream(String path)
             * FileOutputStream(File file)
             * 那么若该文件已存在,会先将文件中所有数据
             * 清除。
             * 
             * 追加写操作:
             * FileOutputStream(String path,boolean append)
             * FileOutputStream(File file,boolean append)
             * 若第二个参数为true,那么通过当前流写出的内容会
             * 被追加到文件末尾。
             */
            FileOutputStream fos
                = new FileOutputStream(
                    "fos.txt",true
                );
            String str = "该配合你演出的我演视而不见!";
            fos.write(str.getBytes("UTF-8"));
            System.out.println("写出完毕!");
            
            fos.close();
        }
    }
    FileOutputStream_Write.java

    文件输入流,用于从文件中读取字节的流,是低级流

    package day07;
    
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    
    /**
     * java.io.FileInputStream
     * 文件输入流
     * 用于从文件中读取字节的流,是低级流
     * 
     * @author adminitartor
     *
     */
    public class FileInputStream_Read {
        public static void main(String[] args) throws IOException {
            FileInputStream fis
                = new FileInputStream("fos.txt");
        
            byte[] data = new byte[200];
            
            int len = fis.read(data);
            
            String str = new String(data,0,len,"UTF-8");
            System.out.println(str);    
            
            fis.close();
            
        }
    }
    FileInputStream_Read.java

    使用文件流复制文件

    package day07;
    
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    
    /**
     * 使用文件流复制文件
     * @author adminitartor
     *
     */
    public class CopyDemo1{
        public static void main(String[] args) throws IOException {
            FileInputStream fis
                = new FileInputStream("music.mp3");
            
            FileOutputStream fos
                = new FileOutputStream("music_cp2.mp3");
            
            byte[] buf = new byte[1024*10];
            int len = -1;
            
            while((len = fis.read(buf))!=-1){
                fos.write(buf,0,len);
            }
            
            System.out.println("复制完毕!");
            fis.close();
            fos.close();
        }
    }
    CopyDemo1.java

    缓冲流 缓冲流是一对高级流,使用它们可以提高读写效率

    java.io.BufferedOutputStream 缓冲字节输出流,用于提高写出效率

    package day07;
    
    import java.io.BufferedInputStream;
    import java.io.BufferedOutputStream;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    
    /**
     * 缓冲流 缓冲流是一对高级流,使用它们可以提高读写效率 java.io.BufferedOutputStream 缓冲字节输出流,用于提高写出效率
     * 
     * java.io.BufferedInputStream 缓冲字节输入流,用于提高读取效率
     * 
     * @author adminitartor
     *
     */
    public class CopyDemo2 {
        public static void main(String[] args) throws IOException {
            FileInputStream fis 
                = new FileInputStream("mv.mp4");
            BufferedInputStream bis
                = new BufferedInputStream(fis);
            
            
            FileOutputStream fos 
                = new FileOutputStream("mv_cp.mp4");
            BufferedOutputStream bos
                = new BufferedOutputStream(fos);
            
            
            int d = -1;
            long start = System.currentTimeMillis();
            while ((d = bis.read()) != -1) {
                bos.write(d);
            }
            long end = System.currentTimeMillis();
    
            System.out.println("复制完毕!耗时:"+(end-start)+"ms");
            bis.close();
            bos.close();
        }
    }
    CopyDemo2.java

    缓冲流写出数据的缓冲区问题

    package day07;
    
    import java.io.BufferedOutputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    
    /**
     * 缓冲流写出数据的缓冲区问题
     * @author adminitartor
     *
     */
    public class Bos_Write {
        public static void main(String[] args) throws IOException {
            FileOutputStream fos
                = new FileOutputStream("bos.txt");
            BufferedOutputStream bos
                = new BufferedOutputStream(fos);
            
            String str = "i have a pen,i have a apple";
            
            bos.write(str.getBytes());
            /*
             * void flush()
             * 该方法可以强制将当前缓冲流中缓冲区中
             * 的数据写出。
             */
            bos.flush();
            
            System.out.println("写出完毕!");
        
            bos.close();
        }
    }
    Bos_Write.java
  • 相关阅读:
    当今优质男人的硬指标15条
    真正爱你的男人
    二十条人生建议
    女孩嫁人前先看看这十句话
    MM拒绝GG求爱的几种方法
    让你受用一生的爱情经典
    男女朋友们的经典称呼
    一道终身受用的测试题
    爱情,你在哪里?
    经典短篇:女人心疼男人的10种方式
  • 原文地址:https://www.cnblogs.com/tangshengwei/p/6240077.html
Copyright © 2011-2022 走看看