(如何读写文件)流-------输入流

流:流是一组有序的数据序列

       通过流来读写文件

       流从方向分输入、输出流

       流从单位份字节、字符流

 (如何读写文件)流-------输入流

 字节输入流:

InputStream(抽象父类---基类)常用方法:(read()几个重载方法作用不同)

int  read():

输入流一个字节一个字节的读,返回的是该字节的整数表示形式,如果读到了输入流的末尾,返回-1

int read(byte[] b):

从输入流读取若干字节,把这些字节保存到数组b中。返回的是读取到的字节数,如果读到了输入流的末尾,返回-1

int read(byte[] b,int off, int len):

从输入流读取若干字节,把这些字节保存到数组b中。off指的是字节数组中开始保存数据的起始下标。len指的是读取的字节数目。返回的是实际读取到的字节数,如果读到了输入流的末尾,返回-1

int  available():

可以从输入流中读取的字节数目,返回值是读取到的字节数目

void close:

子类FileInputStream常用的构造方法:FileInputStream(File  file)

                                                              FileInputStream(String  name)

/**
 * @Description通过字节输入流完成对文件的操作
 */
public class FileInputStreamDemo {
    public static void main(String[] args) {
        FileInputStream fis=null;
        try{
            //2.创建FileInputStream对象
             fis=new FileInputStream("d:/myDoc/test.txt");
            System.out.println("\n可以读取到的字节数"+fis.available());
            //3.借助FileInputStream对象的read()方法读取文件
//            int data;//读取到的每个字节的整数表示形式  比如h--104
//            while ((data=fis.read())!=-1){
//                System.out.print((char)data);
//            }
            //借助FileInputStream对象的read(byte[])方法读取文件
            byte[] b=new byte[1024];
            int data;//读取到的字节数
            while ((data=fis.read(b))!=-1) {
                //字节读取到了字节数组b中,需要循环输出b数组中的内容
                for (int i=0;i<data;i++)
                System.out.print((char)b[i]);
            }
        }catch (FileNotFoundException e){
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            //4.关闭输入流
            try {
                fis.close();
            }catch (IOException e){
                e.printStackTrace();
            }
        }
    }
}

上一篇:IO--输入输出流和字符流


下一篇:使用Java代码操作数据库的注意事项