zoukankan      html  css  js  c++  java
  • IO流

    流:

      1IO流是用来处理设备之间的数据传输

      2Java对数据的操作是通过流的方式

      3Java用于流的操作都在io

      4、流按照流向分为:输入流,输出流  输入读,输出写

      5、流按操作分为:

         字节流:字节流可以操作任何数据,因为在计算机里面任何数据都是以字节的形式存储  

    字符流:字符流只能操作纯字符数据,比较方法

    IO流常用的父类:

       字节流的抽象父类:

    InputStreamOutputStream

       字符流的抽象父类:

        ReaderWriter

    字节流:

    操作一:读取文件内容

    1:创建输入字节流子类对象

            2:调用read()方法一个一个字节读取内容(不推荐使用)

     //1.一个一个字节的读取

    public static void myRead() throws IOException{

    FileInputStream is = new FileInputStream("F:/hello.txt");

    int i;

    while((i = is.read())!=-1){

    System.out.println((char)i);

    }

    }

    public static void main(String[] args)throws Exception{

    myRead();

        3调用read(byte[])的方法将内容读取到数组中,数组大小可以是流的.available()方法获取到的长度,但是此方法弊端是会造成内存溢出。(也不推荐使用)

     //2.每次读取is.available()  可能内存溢出

    //is.read(buffer) 将流的数据读到数组中

    public static void myRead() throws Exception{

    FileInputStream is = new FileInputStream("F:/hello.txt");

    //2-1定义文件有效长度的一个字节数组

    byte[] b = new byte [is.available()];

    int i;

    String str = null;

    //2-2将内容读到字节数组

    is.read(b);

    //2-3将数组内容转化成字符串

    str = new String(b);

    System.out.println(str);

    }


        4调用read(byte[])的方法将内容读取到数组中,数组大小可以定义成1024的倍数,(推荐使用)

     //3.定义一个字节数组

    //read(byte[]):从输入流读取一定数量的字节,并将其储存到缓冲区数组b中,以整数形式返回实际读取的字节数

    public static void myRead() throws Exception{

    FileInputStream is = new FileInputStream("F:/hello.txt");

    int i;

    String str = null;

    byte[] b = new byte[4*1024];

    while((i = is.read(b))!=-1){

    str = new String(b,0,i);

    System.out.print(str);

    }

    }

        5:使用BufferedInputStream缓冲流进行读写

     FileInputStream fis = new FileInputStream("F:/hello.txt");

    BufferedInputStream bis = new BufferedInputStream(fis);

    byte[] b = new byte[4*1024];

    int i;

    String str = null;

    while ((i = bis.read(b))!=-1){

    str = new String(b,0,i);

    }

    System.out.println(str);

    操作二:

    将内容写入文件:创建输出流对象子类

     FileOutputStream fos = new FileOutputStream("F:/aaa.txt");

    String str = "asdfghjkl";

    byte [] b = str.getBytes();

    fos.write(b);

    fos.flush();

    操作三:文本复制

    public static void copytxt() throws Exception{

    FileInputStream fis = new FileInputStream("F:/aaa.txt");

    FileOutputStream fos = new FileOutputStream("F:/hello.txt");

    int i;

    byte [] b = new byte[2*1024];

    while((i = fis.read(b))!=-1){

    fos.write(b);

    }

    }


    操作四:音乐拷贝,可以使用普通输入输出流,可以使用缓冲流

     

    字符流:操作纯文本数据

    操作一:读取文件

     

    操作二:写内容到文件

     

    操作三:文件拷贝 普通字符流

     

    可以使用缓冲流,可以调用特有方法读取一行

     


    操作四:对文件加密解密:原理  一个数异或同一个数两次,得到本身  3^8^8 =3

     

  • 相关阅读:
    Atitit。D&D drag&drop拖拽功能c#.net java swing的对比与实现总结
    Atitit.js javascript异常处理机制与java异常的转换 多重catc hDWR 环境 .js exception process Vob7
    Atitit.web 视频播放器classid clsid 大总结quicktime,vlc 1. Classid的用处。用来指定播放器 1 2. 标签用于包含对象,比如图像、音
    ListView与Adapter的那些事儿
    (转)Android反面自动静音
    (转)socket 与 file_get_contents的区别和优势的简单介绍
    Android ArrayAdapter 详解
    ImageView相关
    Android dip,px,pt,sp 的区别
    (转)Android 程序获取、设置铃声、音量、静音、扬声器
  • 原文地址:https://www.cnblogs.com/future-zmy/p/6091686.html
Copyright © 2011-2022 走看看