zoukankan      html  css  js  c++  java
  • IO—代码—基础及其用例

    字节流:文件、图片、歌曲

    使用字节流的应用场景:如果是读写的数据都不需要转换成字符的时候,则使用字节流。

     

    字节流处理单元为1个字节, 操作字节和字节数组。不能直接处理Unicode字符

    字节流可用于任何类型的对象,包括二进制对象,字符流只能处理字符或者字符串.

    如果是 音频文件、图片、歌曲,就用字节流好点

    字节流在操作的时候本身是不会用到缓冲区(内存)的,是与文件本身直接操作的

    字节流在操作文件时,即使不关闭资源(close方法),文件也能输出

     

    字符流:关系到中文

    使用字符流的应用场景:如果是读写字符数据的时候则使用字符流。

     

    字符流处理的单元为2个字节的Unicode字符,分别操作字符、字符数组或字符串。

    如果是关系到中文(文本)的,用字符流好点

    字符流在操作的时候是使用到缓冲区的

    流不使用close方法的话,则不会输出任何内容,说明字符流用的是缓冲区,并且可以使用flush 方法强制进行刷新缓冲区,这时才能在不close的情况下输出内容

     

    需要缓冲的流:

    BufferedInputStream, BufferedOutputStream,( 字节流 )

    BufferedReader, BufferedWriter( 字符流 )

     

    需要封装基础流:

    BufferedReader和BufferedWriter

    ObjectInputStream 和 ObjectOutputStream

    DataInputStream 和 DataOutputStream

     

    IO—对象流

    ---------------------------------------------------------------------------------------

    public static void main(String[] args) {

    //封装 一个序列化的输出流

    ObjectOutputStream oos =null;

    try {

    oos = new ObjectOutputStream(new FileOutputStream(

    "E:/Domi/txt/4.txt"));

    Student st1 = new Student("张三", 32);

    Student st2 = new Student("张lis", 32);

    ArrayList<Student> ls = new ArrayList<Student>();

    ls.add(st1);

    ls.add(st2);

    oos.writeObject(ls);

    } catch (Exception e) {

    e.printStackTrace();

    }finally{

    try {

    oos.close();

    } catch (Exception e2) {

    e2.printStackTrace();

    }

    }

    }

    -----------------------------------------------------------------------------------------------

    public static void main(String[] args) {

    //读取对象

    ObjectInputStream ois = null;

    try {

    ois = new ObjectInputStream(

    new FileInputStream("E:/Domi/txt/4.txt"));

    ArrayList<Student> lis = (ArrayList<Student>) ois.readObject();

    for(Student ss:lis){

    System.out.println(ss.name+","+ss.age);

    }

    } catch (Exception e) {

    e.printStackTrace();

    }finally{

    try {

    ois.close();

    } catch (Exception e2) {

    e2.printStackTrace();

    }

    }

    }

    -------------------------------------------------------------------------------------------------

    IO—字符流

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

    BufferedReader bf =null;

    BufferedWriter bw = null;

    bf = new BufferedReader(new FileReader(EDomitxt1.txt));

    bw = new BufferedWriter(new FileWriter(EDomitxt2.txt,true));

    创建中间变量

    System.out.println(bf.ready());

    String line = bf.readLine();

    while(line!=null){

    bw.write(line);

    bw.flush();

    System.out.println(line);

    line = bf.readLine();

    }

    bw.close();

    bf.close();

    }

    IO—字节流(二进制文件)

    public static void main(String[] args) {

    FileInputStream fi = null;

    FileOutputStream fo = null;

    try {

    fi = new FileInputStream("E:/Domi/txt/1.txt");

    fo = new FileOutputStream("E:/Domi/txt/2.txt", true);

    int a;

    while ((a = fi.read()) != -1) {

    //二进制a转为char输出

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

    fo.write(a);

    }

    } catch (Exception e) {

    e.printStackTrace();

    }finally{

    try {

    fo.close();

    fi.close();

    } catch (Exception e2) {

    e2.printStackTrace();

    }

    }

    }

    IO—字节流(图片,音,视频)

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

    DataInputStream dis=null;

    DataOutputStream dos = null;

    dis =new DataInputStream(new FileInputStream("E:\Domi\txt\music.mp3"));

    dos = new DataOutputStream(new FileOutputStream("E:\Domi\txt\top2.mp3"));

    //创建中转站

    byte[] by = new byte[1024];

    //复制文件

    int len = dis.read(by);

    while(len!=-1){

    dos.write(by);

    len = dis.read(by);

    }

    dos.close();

    dis.close();

    System.out.println("复制完毕!");

    }

    --------------------------------------------------------------------------------------------

  • 相关阅读:
    Cocos-js(html5) 学习
    Cocos-html5 初识
    quick cocos2d-x Xcode下省去clean,让修改的脚本生效
    iOS 淘宝买 开发者证书 进行真机调试
    iOS NSString的学习熟悉
    quick-cocos2d-x 加载进度条的学习
    HTML 学习之HTML语言嵌入JavaScript
    CCArray的使用(Quick-cocos2d-x)
    quick-cocos2d-x 精灵使用、动作等等的学习
    Spring(二) Mini版Spring的实现
  • 原文地址:https://www.cnblogs.com/domi22/p/8046676.html
Copyright © 2011-2022 走看看