java I/O入门学习

java I/O

1)编码

  gbk编码,中文占2个字节,英文占一个字节;

  utf-8下,中文占3个字节[byte]

  java是双字节编码  utf-16be,

  当你的字节序列以某种编码时,这个时候想把字节序列转化为字符串,也必须用这种方式,否则出现乱码。

2) File类的使用

    java.io.File类用于表示文件(目录)

    a. File类只用于表示文件(目录)的信息(名称、大小等),不能用于文件的访问。

        exists() 判断文件或目录是否存在

mkdir()  创建文件或目录

delete()  删除

isDirectory()  判断是否是个目录

isFile()  判断是否是文件

...

     b.常用操作

        dir.list() 返回的是目录下的子文件名称数组,但不能包含子目录下的内容

File[] files = dir.listFiles()  返回的是直接子目录或者文件的抽象  文件数组

3) RandomAccessFile  java提供的对文件内容的访问,既可以读文件,也可以写文件

                    支持随机访问文件,可以访问文件的任意位置。

  a. java文件模型

    在硬盘上的文件是byte byte存储的,是数据的集合

  b. 打开文件

       有两种模式 “rw”(读写) “r”(只读)

RandomAccessFile raf = new RandomAccessFile(fiel,"rw");

文件指针,打开文件时指针在开头,pointer =0

raf.seek(0);  读文件,将指针移动到头部

   c.写方法

     raf.write(int)  只写一个字节(后八位),同时指针指向下一个位置

                      准备再次写入

   d. 读方法

int b = raf.read()  读一个字节

   

   e. 文件读写完成后一定记得关闭

     raf.close();  关闭文件

4) 字节流

    IO流(输入流、输出流)

    a. 字节流

       InputStream 抽象了应用程序读取数据的方式

       OutputStream  抽象了应用程序写出数据的方式

    b. EOF = End 读到-1就读到结尾

    c. 输入流

       int b = in.read()  读取一个字节,无符号填充到int低八位,

             -1是EOF

in.read(byte[] buf)  读取数据填充到字节数组buf

in.read(byte[] buf,int start,int size)

    d. 输出流基本方法

       out.write(int b)

       ...

    e. FileInputStream

       

猜你喜欢

转载自luckylearn.iteye.com/blog/2382908