输入/输出流介绍

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();
原文地址:https://www.cnblogs.com/tianzhijiexian/p/3984180.html