zoukankan      html  css  js  c++  java
  • IO流

    /**
    * 1GB=1024M
    * 1M=1024KB
    * 1KB=1024B
    *java.io.File类:可以描述文件或目录
    *构造函数:
    *File(String pathname) 通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。
    *常用方法:
    *long getTotalSpace():分区的大小,以字节为单位;
    *file.getFreeSpace();获取分区中未分配的字节数。 ,以字节为单位
    *getPath():返回此对象表示的文件的相对路径名
    String getAbsolutePath( ):返回此对象表示的文件的绝对路径名
    */

    /**
    * Java流的分类:
    1.按方向分为输入流和输出流(相对于计算机的内存来说,而不是相对于目标或源来说)
    输入流: InputStream/Reader
    输出流:OutputStream/Writer
    2.按读写单位分为字节流(8位)和字符串流(16位)
    字节流(字节输入流:InputStream和字节输出流OutputStream)
    字符流(字符输入流:Reader和字符输出流Writer)
    3.按功能分节点流和处理流
    节点流:可以直接从数据源或目的地读写数据
    处理流:(包装流):不直接连接到数据源或目的地,是其他流进行封装。目的主要是简化操作和提高性能。
    * InputStream/OutputStream都是抽象类,不能实例化。
    * java.io.FileInputStream类继承了java.io.InputStream
    * 常用的构造方法:
    * FileInputStream(String name) 通过打开一个到实际文件的连接来创建一个 FileInputStream
    * 其中有一个检查异常需要捕获:FileNotFoundException
    * 常用方法:
    * read():从此输入流中读取一个数据字节。 如果已到达文件末尾,则返回 -1 ,其中有一个检查异常需要捕获:IOException
    * close():其中有一个检查异常需要捕获:IOException
    *
    * 利用FileInputStream读取中文文本时出现乱码?
    * 原因:中文汉字占用1个字符(2个字节),FileInputStream每次读取1个字节,利用字符输入流解决
    */


    /**
    * 字符串的构造函数
    * String(byte[] bytes)通过使用平台的默认字符集解码指定的 byte 数组,构造一个新的 String。
    * String(byte[] bytes, int offset, int length)通过使用平台的默认字符集解码指定的 byte 子数组,构造一个新的 String。
    * 构造函数:
    * FileInputStream(File file)
    * 常用方法:
    * read(byte[] b) 从此输入流中将最多 b.length 个字节的数据读入一个 byte 数组中。
    */

    /**
    * FileOutputStream类继承了OutputStream(抽象类)
    * 构造函数:
    * FileOutputStream(String name) 创建一个向具有指定名称的文件中写入数据的输出文件流。
    * FileOutputStream(String name, boolean append) 创建一个向具有指定 name 的文件中写入数据的输出文件流。
    * FileOutputStream(File file) 创建一个向指定 File 对象表示的文件中写入数据的文件输出流。。
    * FileOutputStream(File file, boolean append) 创建一个向指定 File 对象表示的文件中写入数据的文件输出流
    * 注意:
    * 1.FileOutputStream(File file)或FileOutputStream(String name)构造函数时 ,写入文件内容时会发生覆盖
    * 2.FileOutputStream(File file,boolean append)或FileOutputStream(File file, boolean append)时,
    * 当append为true,会追加内容
    * 3.FileOutputStream写入文件内容,如果文件不存在,将自动创建。
    *
    * 常用的方法:
    * write(byte[] b) 将 b.length 个字节从指定 byte 数组写入此文件输出流中。
    * write(int b) 将指定字节写入此文件输出流
    * write(byte[] b, int off, int len) 将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此文件输出流。
    * close() 关闭流
    *
    */

    /**
    *字符流:以字符为单位进行读取
    *使用场景:如果读取文本内容时推荐使用字符流进行读取(一个汉字占用的两个字节(一个字符))
    *两个抽象基类
    * Reader:用于读取字符流的抽象类。
    * FileReader:是Reader的子类
    * FileReader的构造函数
    * FileReader(File file) 在给定从中读取数据的 File 的情况下创建一个新 FileReader。
    * FileReader(String fileName) 在给定从中读取数据的文件名的情况下创建一个新 FileReader。
    * 注意:在创建FileReader对象时需要捕获一个检查异常:FileNotFoundException
    * 常用方法:
    * int read():读取单个字符。 有一个检查异常需要捕获IOException
    * int read(char[] cbuf, int offset,int length):将字符读入数组中的某一部分。
    close() 关闭该流并释放与之关联的所有资源。 有一个检查异常需要捕获IOException

    * Writer:
    *
    */

    /**
    * String(char[] value):分配一个新的 String,使其表示字符数组参数中当前包含的字符序列
    * String(char[] value, int offset, int count) 分配一个新的 String,它包含取自字符数组参数一个子数组的字符。
    *字符流:以字符为单位进行读取
    *使用场景:如果读取文本内容时推荐使用字符流进行读取(一个汉字占用的两个字节(一个字符))
    *两个抽象基类
    * Reader:用于读取字符流的抽象类。
    * FileReader:是Reader的子类
    * FileReader的构造函数
    * FileReader(File file) 在给定从中读取数据的 File 的情况下创建一个新 FileReader。
    * FileReader(String fileName) 在给定从中读取数据的文件名的情况下创建一个新 FileReader。
    * 注意:在创建FileReader对象时需要捕获一个检查异常:FileNotFoundException
    * 常用方法:
    * int read():读取单个字符。 有一个检查异常需要捕获IOException
    * int read(char[] cbuf, int offset,int length):将字符读入数组中的某一部分。
    close() 关闭该流并释放与之关联的所有资源。 有一个检查异常需要捕获IOException
    * Writer:
    *
    */

    /**
    * 捕获异常的快捷键:alt+shift+z
    *BufferedReader类:继承了Reader类,带缓冲区的输入流,提高读的效率
    *按功能划分属于处理流,必须结合节点流进行使用,不能单独使用
    *构造函数:
    *BufferedReader(Reader in) 创建一个使用默认大小输入缓冲区的缓冲字符输入流。
    *BufferedReader(Reader in, int size) 创建一个使用指定大小输入缓冲区的缓冲字符输入流。
    *常用方法:
    * readLine() 读取一个文本行。
    * close() 关闭该流并释放与之关联的所有资源
    */

  • 相关阅读:
    TCP服务器是否需要心跳包?
    用最简单的函数实现功能:判断一个int数据是否是2的x次幂(不能使用循环)。
    防止程序启动两次的方法CreateMutex()
    WINDOWS操作系统中可以允许最大的线程数
    setsockopt 设置socket 详细用法
    我的结论:DX9不支持非2的次幂尺寸纹理,还得显卡说了算
    D3DX_DEFAULT_NONPOW2
    【解决】Select网络模型问题——奇怪的发送接收问题
    CRC32 简单使用
    .NET开发总结 2010年2月
  • 原文地址:https://www.cnblogs.com/wangkemeng/p/6745533.html
Copyright © 2011-2022 走看看