首页 > 代码库 > 输入/输出流介绍

输入/输出流介绍

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();

 

输入/输出流介绍