输入/输出流介绍
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();
分类:
File | IO
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?