• Java I/O第二篇 之 (缓冲流 随机流 数组流 数据流)


    1:缓冲流 BufferedReader  BufferedWriter

        具有较强的读写能力,能单独读写一行数据,能够减少对硬盘的访问次数。

     1 /**
     2  * 缓冲流   能够增强对问价数据的可读性,减少访问读取硬盘的次数,提高效率
     3  * */
     4     public static void bufferedDemo() throws IOException{
     5         File fread=new File("E:\input.txt");
     6         File fwrite=new File("E:\output.txt");
     7         System.out.println("文件:"+"E:\output.txt"+"是否可读"+fwrite.canWrite());
     8         BufferedReader bis=null;
     9         BufferedWriter bos=null;
    10         FileReader fis=new FileReader(fread);
    11         FileWriter fos=new FileWriter(fwrite);
    12         bis=new BufferedReader(fis);
    13         bos=new BufferedWriter(fos);
    14         //读取文件数据,打印展示
    15         int lineLen=0;
    16         String arrayStr[]=new String[20];        //创建数组,存储读取内容
    17         String temp;
    18         while((temp=bis.readLine())!=null){
    19             System.out.println(temp);
    20             arrayStr[lineLen]=temp;
    21             lineLen++;
    22         }
    23         System.out.println("文件读取完毕");
    24         //输出数据
    25         String s;
    26         while((s=bis.readLine())!=null){
    27             bos.write(s);
    28             bos.newLine();     //插入换行符
    29         }
    30         System.out.println("数据输出完毕。");
    31         bos.flush();
    32         bis.close();
    33         bos.close();
    34     }

    2:随机流 RandomAccessFile 

        RandomAccessFile流,既可以读取文件中的数据,也可以写进文件中的数据的一种流

     1 /**
     2      * 随机流      可读可写的类型RandomAccessFile
     3      * @throws IOException 
     4      * */
     5     public static void RandomAccessDemo() throws IOException{
     6         //单独使用Random写进一些数据,在读出来
     7         int data[]={1,2,3,4,5,6,7,8,9};
     8         File fileName=new File("E:\RandomAccessFile.txt");
     9         if(!fileName.exists())
    10             fileName.createNewFile();
    11         RandomAccessFile raf=new RandomAccessFile(fileName, "rw");
    12         for(int i=0;i<data.length;i++){
    13             raf.writeInt(i);
    14         }
    15         System.out.println("数据写入完毕。");
    16         //读取数据
    17         for(int j=data.length-1;j>=0;j--){
    18             raf.seek(j*4);
    19             System.out.printf("	%d",raf.readInt());
    20         }
    21         raf.close();
    22     }

    3:数组流     字节数组流:ByteArrayInputStream  ByteArrayOutputStream

                      字符数组流:BytearrayReader  ByteArrayWriter

     1 /**
     2      * 数组流   字节数组流(ByteArrayInputStream  ByteArrayOutputStream)
     3      *        字符数组流(BytearrayReader  ByteArrayWriter)
     4      * */
     5     public static void ByteArrayDemo() throws Exception{
     6         //字节流
     7         ByteArrayOutputStream bos=new ByteArrayOutputStream();
     8         byte [] str="祝你节日快乐".getBytes();
     9         bos.write(str);                //写入数据
    10         //读取数据
    11         ByteArrayInputStream bis=new ByteArrayInputStream(bos.toByteArray());
    12         byte[] b=new byte[bos.toByteArray().length];
    13         bis.read(b);
    14         System.out.println("写入的数据为:"+new String(b));
    15         bis.close();
    16         bos.close();
    17         //字符流
    18         CharArrayWriter caw=new CharArrayWriter();
    19         char [] str2="中秋节快乐!".toCharArray();
    20         caw.write(str2);
    21         CharArrayReader car=new CharArrayReader(caw.toCharArray());
    22         char[] c=new char[caw.toCharArray().length];
    23         car.read(c);
    24         System.out.println("读取的数据为:"+new String(c));
    25         car.close();
    26         caw.close();
    27     }

    4:数据流   DataInputStream DataOutputStream 

        能够方便的读取与机器无关的java原始数据,读取时不必纠结去字节大小

    /**
         * 数据流 DataInputStream DataOutputStream 能够方便的读取与机器无关的java原始数据
         * */
        public static void DataDemo() throws IOException{
            //创建文件 ,用数据流写入不同类型的数据,分别读出不同类型的数据
            File f=new File("E:\DataDemo.txt");
            FileOutputStream fos=new FileOutputStream(f);
            DataOutputStream dos=new DataOutputStream(fos);
            dos.writeInt(23);
            dos.writeDouble(22.343435);
            dos.writeFloat(55.2343f);
            dos.writeBoolean(true);
            dos.writeChars("中秋快乐!");
            System.out.println("数据读入完毕!");
            //读取数据
            FileInputStream fis=new FileInputStream(f);
            DataInputStream dis=new DataInputStream(fis);
            System.out.println(dis.readInt());
            System.out.println(dis.readDouble());
            System.out.println(dis.readFloat());
            System.out.println(dis.readFloat());
            System.out.println(dis.readBoolean());
            char c='';
            while((c=dis.readChar())!=''){
                System.out.print(c);
            }
        dis.close();
        dos.close();
        }
  • 相关阅读:
    如何删除Windows的服务
    在使用ORACLE时常用到的命令和脚本
    windows 查看端口使用情况
    jQuery获取及设置单选框,多选框,文本框内容
    disabled="disabled" readonly="readonly" type="hidden"提交表单的区别
    @Column标记持久化详细说明
    jQuery核心及其工具
    Hibernate JPA注解说明
    php要点
    jQuery中的动画与效果
  • 原文地址:https://www.cnblogs.com/chenyangqi/p/4328433.html
Copyright © 2020-2023  润新知