输入/输出流介绍

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();
时间: 2024-08-09 02:18:15

输入/输出流介绍的相关文章

《C++编程思想》第六章 输入输出流介绍(习题+解答)

一.相关知识点 操纵算子 这里已经添加了一个新的元素:一个称作 endl的操纵算子.一个操纵算子作用于流上,这种情况下,插入一新行并清空流(消除所有存储在内部流缓冲区里的还没有输出的字符).也可以只清空流: cout<<flush: 另外有一个基本的操纵算子把基数变为 oct (八进制), dec (十进制)或hex (十六进制): cout<<hex<<"0x"<<i<<endl: 有一个用于提取的操纵算子"跳过&

Java输入输出流的使用详细介绍

出处:http://www.jb51.net/article/36138.htm 1.什么是IO Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列.Java的I/O流提供了读写数据的标准方法.任何Java中表示数据源的对象都会提供以数据流的方式读写它的数据的方法. Java.io是大多数面向数据流的输入/输出类的主要软件包.此外,Java也对块传输提供支持,在核心库 java.nio中采用

[转]Java输入输出流的使用详细介绍

出处:http://www.jb51.net/article/36138.htm 1.什么是IO Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列.Java的I/O流提供了读写数据的标准方法.任何Java中表示数据源的对象都会提供以数据流的方式读写它的数据的方法. Java.io是大多数面向数据流的输入/输出类的主要软件包.此外,Java也对块传输提供支持,在核心库 java.nio中采用

Java IO详解(三)------字节输入输出流

File 类的介绍:http://www.cnblogs.com/ysocean/p/6851878.html Java IO 流的分类介绍:http://www.cnblogs.com/ysocean/p/6854098.html 那么这篇博客我们讲的是字节输入输出流:InputStream.OutputSteam(下图红色长方形框内),红色椭圆框内是其典型实现(FileInputSteam.FileOutStream)  1.字节输出流:OutputStream public abstrac

Java输入输出流总结(转载)

Java输入输出流总结 一.介绍 流是数据源或数据目标的输入或输出设备的抽象表示.支持流输入和输出的主要包是java.io,但是也有其他的包,比如java.nio.file.java.io包支持两种类型的流--包含二进制数据的字节流和包含字符数据的字符流. 当写数据到字节流中时,数据会以字节序列的形式写到流中,与它们在内存中的形式完全一样,在这个过程中不会发生数据转换.即java.io包中的InputStream和OutputStream的派生类,通常用来读取二进制数据,如图像和声音. 将字符串

java中常见的输入输出流案例学习

字节输入流: 1.FileInputStream 用途:从文件系统中的文件获得输入字节,常用于读取图像.声音等原始字节流,读取字符流可考虑使用FileReader 详细构造函数与常用方法可参考API文档,网上已经有中文版的API了,我是个E文盲,伤不起 这里介绍一个最常见的方法: read(byte[] b, int off, int len) 从此输入流中将最多 len 个字节的数据读入一个 byte 数组中. ->off:b字节数组中的偏移量 小知识:数组偏移量,比如a[1,2,3,4,5]

iostream/fstream中的输入输出流指针的绑定,tie函数的使用。

为了兼容c语言的输入输出,c++里面采用tie将输入输出流经行绑定,所以cin/cout并不是独立的.当执行cin时,cout同时会被执行.反之亦然. by defalut,cin is tied to cout,and wcin is tied to wcout. 默认情况下,cin和cout是绑定在一起的,wcin和wcout是绑定在一起的. 也就是说默认情况下,我们执行 int a; cin>>a; 用户输入abcd'Enter' 执行的过程是,先将abcd输入到流缓冲区中,然后从缓冲区

关于C++ 输入输出流状态控制

关于这一点呢,是在做<C++primer >关联容器map的一道习题中发现这个蛋疼的问题的. 问题是这样的: 我想要将while循环条件设置为cin,这样就可以不断等待输入,普通的程序可以直接按下ctrl+z中止输入,麻烦在于这里有两层这样的while循环,而ctrl+z会一次性全部退出,导致无法实现想要的目的(在每个外层循环内部,可以输入有限量可中止的内层循环变量,也就是说第一次按下ctrl+z只停止内层的循环,等待进行下一次外层循环,然后再进入内层循环……) 1 #include<&

《三》Java IO 字节输入输出流

那么这篇博客我们讲的是字节输入输出流:InputStream.OutputSteam(下图红色长方形框内),红色椭圆框内是其典型实现(FileInputSteam.FileOutStream)    1.字节输出流:OutputStream ? 1 2 3 public abstract class OutputStream extends Object implements Closeable, Flushable 这个抽象类是表示字节输出流的所有类的超类. 输出流接收输出字节并将其发送到某个