zoukankan      html  css  js  c++  java
  • 输入/输出流介绍

    Android中的文件存储操作是通过输入、输出流进行的,里面重要的类是FileOutputStream和FileInputStream,重要的方法是write和read,首先先来看write方法。

    1.write方法

      fos.write(byte[] buffer) // 将一个字节数组buffer写入到输出流中

      fos.write(int b) //将一个整数b存入到输出流中

    范例:

                fos = mContext.openFileOutput("file.txt", Context.MODE_APPEND);
                fos.write(1);//将整数1写入到文件中
                fos.write("string".getBytes());//将字节数组的buffer写入到输出流。
         fos.close();

    扩展:

             File file = new File("dir/" ,"file.txt");
             OutputStream output = new FileOutputStream(file);//通过fos得到输出流
             InputStream input;
             byte buffer [] = new byte[5 * 1024];//设定字节数组,看一下子读取几个字节
             while((input.read(buffer)) != -1){//输入流先读取一定的字符,然后让输出流将这些字符写入,接着再读取,直到没有字符了
                 output.write(buffer);
             }
             output.flush();//关闭输出流,断开连接

    2.read方法

      int read() //从此输入流中读取一个数据字节

      int read(byte[] b) //从此输入流中将最多b.length个字节的数据读入到一个byte数组中去

      int read(byte[] b,int off,int len) //从此输入流中将最多len个字节的数据存入到一个byte数组中去

    范例:

             FileInputStream fis = mContext.openFileInput("file.txt");
             byte[] buffer = new byte[fis.available()];//fis.available()返回一个文件的大小
             fis.read(buffer);
         fis.close();

    扩展1:

                // 打开文件输入流
                FileInputStream fis = mContext.openFileInput(fileName);
                byte[] buff = new byte[1024];
                int hasRead = 0;
                StringBuilder sb = new StringBuilder("");
                // 读取文件内容
                while ((hasRead = fis.read(buff)) > 0) {
                    sb.append(new String(buff, 0, hasRead));
                }
                // 关闭文件输入流
                fis.close();
                return sb.toString();

    扩展2:

         File file = new File("dir/"+ "file.txt");
             FileInputStream fis = new FileInputStream(file);
             BufferedReader br = new BufferedReader(new InputStreamReader(fis));
             StringBuilder sb = new StringBuilder("");
             String line = null;//定义读取一行字符后存储的String对象
             //循环读取文件内容
             while((line = br.readLine()) != null) {
                 sb.append(line);//将读取的每一行补到StringBuilder后面
             }
             br.close();//关闭BufferReader
             return sb.toString().trim();
  • 相关阅读:
    化了妆的祝福 4
    桥牌感悟 2
    关于送礼
    东京disney sea流水账 1
    东京disney sea流水账 3
    晕倒的候任日本驻华大使
    一饮一啄
    就算神游 之二:行路 4
    关于送礼续
    桥牌感悟 3
  • 原文地址:https://www.cnblogs.com/tianzhijiexian/p/3984180.html
Copyright © 2011-2022 走看看