IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 笔记 第1章 流与文件 -> 正文阅读

[移动开发]笔记 第1章 流与文件

?

?1.1

输入流:从外部读入数据到代码中,叫做输入流,父类 InputStream

输出流:从代码当中,把内容写入文件,叫做输出流,父类 OutputStream

字节流:以字节为单位读写文件数据

字符流:以字符为单位读写文件数据

流的读入,可使用 InputStream 的 read 方法,会返回一个实际读入的长度,没有读到数据时,会返回-1.

流的写入,可使用 OutputStream 的 write 方法, 可通过 write不断写数据,直到数据末尾

?1.1.1 读写字节

例子:

?🧡💛💚💙💜🤎🖤?🧡💛💚💙💜🤎🖤?🧡💛💚💙💜🤎🖤

public class Main {
    public static void main(String[] args) throws InterruptedException, ExecutionException {
        try {
            //输入
            OutputStream outputStream = new FileOutputStream("a.properties");
           String str = "Returns <tt>true</tt> if this map maps one or more keys to the\n" +
                   "specified value.  More formally, returns <tt>true</tt> if and only if\n" +
                   "this map contains at least one mapping to a value <tt>v</tt> such that\n" +
                   "<tt>(value==null ? v==null : value.equals(v))</tt>.  This operation\n" +
                   "will probably require time linear in the map size for most\n" +
                   "implementations of the <tt>Map</tt> interface.";
            byte[] tmps = str.getBytes();
            int LEN = 128;
            for(int start = 0; start<str.length(); start+=LEN){
                int end = Math.min(str.length(),start+LEN);
                outputStream.write(tmps,start,Math.min(LEN,end-start));
            }
            outputStream.close();
 
            byte[] datas = new byte[128];
            //输出
            InputStream inputStream = new FileInputStream("a.properties");
            StringBuilder sb = new StringBuilder();
            int len = 0;
            while (-1!=(len=inputStream.read(datas))){
                sb.append(new String(datas), 0, len);
            }
            inputStream.close();
 
            System.out.println(sb.toString());
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
 
    }
}

?🧡💛💚💙💜🤎🖤?🧡💛💚💙💜🤎🖤?🧡💛💚💙💜🤎🖤

结果:

🚗🚓🚕🛺🚙🚌🚐🚎🚑🚒🚚🚛🚜🚘🚔🚖🚍🦽🦼🛹🚲🛴🛵🏍

🚗🚓🚕🛺🚙🚌🚐🚎🚑🚒🚚🚛🚜🚘🚔🚖🚍🦽🦼🛹🚲🛴🛵🏍

注意,使用流之后必须关闭(close())。否则会占用文件,无法对文件进行额外操作,比如无法对文件重命名。

?1.1.2 完整的流家族

Java中有各种各样的流,然后书的作者给展示了一些图片(太多了,光看名字也吸收不了没什么用,这部分跳过)

JDK 5 的四个重要接口:Closeable,Flushable,Readable和Appendable

四个重要类实现情况如下:

Closeable 全部实现,所有流最终都需要关闭

Readable Reader实现(内部用字符,不是字节,所以字节流不能实现)

Flushable 写入流必然实现

Appendable Writer 实现(内部用字符,不是字节,所以字节流不能实现)

相关内容:选择 《Java核心技术 卷1》查找相关笔记

评论🌹点赞👍收藏?关注👀,是送给作者最好的礼物,愿我们共同学习,一起进步

如果对作者发布的内容感兴趣,可点击下方关注公众号?钰娘娘知识汇总?查看更多作者文章哦!

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-05-10 12:02:43  更:2022-05-10 12:04:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 1:28:24-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码