欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java I/O入门学习

程序员文章站 2022-03-22 14:08:32
...

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

       

相关标签: java io