io流中用到的设计模式

2023-11-08

总括:适配器模式    装饰者模式

public void testInputStreamReader() throws Exception {
    private static final String SEPARATOR = File.separator;

    File file = new File("e:" + SEPARATOR + "io" + SEPARATOR + "test.txt");
    //BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
    // 备注上面这个初始化过程就是多次使用包装来完成的,不推荐这么写,会让新手看不懂。

    //1、获得子节输入流
    FileInputStream fileInputStream=new FileInputStream(file);
    //2、构造转换流(是继承Reader的)
    InputStreamReader inputStreamReader=new InputStreamReader(fileInputStream);
    //3、 构造缓冲字符流
    BufferedReader bufferedReader=new BufferedReader(inputStreamReader);


    //备注1、2两步骤体现出了适配器模式
    //2步骤体现了InputStreamReader类具有将子节输入流转换为字符输入流的功能
    //2、3两步骤体现了装饰模式(wrapper包装模式)

}

参考博客:https://blog.csdn.net/nicewuranran/article/details/51779060

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

io流中用到的设计模式 的相关文章

  • 十三、Java-IO进化过程之NIO

    概述 前面几篇文章我们对Java的IO体系做了一个大致的介绍 从本文开始我们将对NIO SELECTOR EPOLL Netty等携带例子做更深入的讲解 如需持续了解请关注后随时查看 解读 非阻塞IO模型 当用户线程发起一个read操作后
  • 二、java.nio.ByteBuffer用法小结

    java nio ByteBuffer用法小结 简介 在Java的Socket编程中 若使用阻塞式 BIO 则往往通过ServerSocket的accept 方法获取到客户端Socket之后 再使用客户端Socket的InputStream
  • 将字节写入文件而不删除现有字节[重复]

    这个问题在这里已经有答案了 可能的重复 在 Java 中在文件中间写入字节的最佳方法 我有一个需要在其中写入字节的文件 我知道我需要在文件中的哪个位置insert特定字节 为了清楚起见 我需要在文件中间写入字节而不擦除任何现有字节 整个操作
  • Scanner.hasNext 上的无限循环,从文件中读取

    我显然面临着无限循环while input hasNext 如下面的代码所示 File file new File data txt Scanner input new Scanner file int sum 0 while input
  • 如何在内存中创建一个新的java.io.File? [复制]

    这个问题在这里已经有答案了 我怎样才能创建新的File from java io 在内存中 而不是在硬盘上 我正在使用Java语言 我不想将文件保存在硬盘上 我面临着一个糟糕的 API java util jar JarFile 正在期待着
  • javax.crypto.BadPaddingException:未知的块类型

    我正在尝试模拟非对称密钥系统 我使用以下代码来生成密钥对 加密 解密密码 我有一个分布式环境 目前我将生成的密钥保存在文件系统中 我知道这并不安全 但它只是用于测试目的 private static SecureRandom random
  • 如何用Java读取TIFF文件?

    假设我有一个非常大的 TIFF 图像作为输入 由于我必须遵守内存规范 我无法完全加载此图像 所以以下不是一个选择 BufferedImage data ImageIO read image 是否有任何 Java 库允许读取图像的特定部分而不
  • FileNotFoundException(没有这样的文件或目录)

    我正在编写一个 Android 应用程序 我需要从多个文件夹中读取多个文件并将它们添加到多个 zip 存档中 我需要将档案的最大大小限制为 16mb 因此 在运行时将文件添加到存档时 如果文件大小超过 16 mb 则创建另一个具有相同大小限
  • 将outputStream转换为字节数组[重复]

    这个问题在这里已经有答案了 如何获取输出流的字节 或者如何将输出流转换为字节数组 从理论角度来看 即 无论作为用例在实践中是否有意义 这是一个有趣的问题 本质上需要实现类似的方法 public abstract byte convert O
  • base64 解码的文件不等于原始未编码的文件

    我有一个普通的pdf文件 A pdf 第三方以base64对该文件进行编码 并将其作为长字符串在网络服务中发送给我 我无法控制第三方 我的问题是 当我使用 java org apache commons codec binary Base6
  • java.nio.file.FileAlreadyExistsException如何在java7中解决这个问题

    我正在编写代码 我正在使用 java nio api 创建一个目录 我的代码段是 Path target Paths get folder path xx 0 Set
  • 使用 Java 从二进制文件中读取整数值

    我正在尝试使用写入大于 256 的值DataOupPutStream write 方法 当我尝试使用读取相同的值时DataInputStream read 它将返回 0 所以 我用了DataOutputStream writeInt and
  • java nio Files.copy 抛出 Java 堆空间内存不足

    我正在尝试创建一个包含文件集合的 zip 文件 我使用 java nio Files 类来执行此操作 Files copy toBeAdded internalTargetPath StandardCopyOption REPLACE EX
  • 使用java程序编辑文本文件中的特定行

    好吧 假设我有一个名为 people txt 的文本文件 它包含以下信息 1 adam 20 M 2 betty 49 F 3 charles 9 M 4 david 22 M 5 ethan 41 M 6 faith 23 F 7 gre
  • 从资产文件夹复制数据库[重复]

    这个问题在这里已经有答案了 我正在创建一个使用现有 sqlite 数据库的字典应用程序 我已将数据库放置在资产文件夹中 并在应用程序首次启动时使用以下代码来复制数据库 我借用了这个想法this http www reigndesign co
  • android中是否需要关闭参数/参数InputStream?

    所有流和 bufferedReader 都需要关闭我的问题是如果 流和 bufferedReader 位于方法参数 参数内 也需要关闭吗 正常代码示例 InputStream i entity getContent i close 问 如果
  • 在java中将图像作为文本发送

    是否可以将图像读取为文本并通过网络发送 是的 那么我们该怎么做呢 您可以对图像进行 Base64 编码以生成 文本 字符串 Apache Commons Codec 有 Base64 实现 http commons apache org c
  • java.nio.file.Files.delete(Path path) - 使用 SimpleFileVisitor 递归删除目录偶尔失败

    尝试解决偶尔出现的问题java nio file DirectoryNotEmptyException在递归删除方法中取自Java中递归删除目录 https stackoverflow com questions 779519 delete
  • FileOutputstream.close() 并不总是将字节写入文件系统?

    看完之后这个答案 https stackoverflow com questions 7849528 fileoutputstream close is really slow when writing large file 7849941
  • 在服务器上创建 Zip 文件并使用 java 下载该 zip

    我从 mkyong 获得了以下代码 用于在本地压缩文件 但是 我的要求是在服务器上压缩文件并需要下载它 任何人都可以帮忙吗 代码写入zip文件 public void zipFiles File contentFile File navFi

随机推荐

  • PowerDesigner 反向工程,生成ER图

    建立好一个完整的oracle数据库之后 昨天老师让我用PL SQL Developer导出表结构的PDM文件 显示该数据库的ER图 仔细研究了一个晚上 决定放弃使用PL SQL Developer生成Oracle的ER图 捣弄了好久都没找到
  • yaml 数组_【大强哥-k8s从入门到放弃04】Yaml语法解析

    依然小福利 Python 零基础入门 2020感谢走进我的生命 Python 已更新至206集 哔哩哔哩 干杯 bilibili www bilibili com 一 K8S名称空间 嗯 名称空间是个小插曲 yaml在下面 1 Yaml文件
  • OpenCV图像腐蚀膨胀算法的Python模拟实现

    前往老猿Python博客 https blog csdn net LaoYuanPython 一 引言 在 OpenCV Python图像矩阵不扩充边界腐蚀膨胀函数处理算法探究 https blog csdn net LaoYuanPyth
  • c++模板之萃取

    假如 我们要设计一个 Copy的模板函数 我们为了提高效率采用memcpy 可以这样写 template
  • linux_常用命令

    一 日常使用命令 常用快捷键命令 开关机命令 1 shutdown h now 立刻进行关机 2 shutdown r now 现在重新启动计算机 3 reboot 现在重新启动计算机 4 su 切换用户 passwd 修改用户密码 5 l
  • C++ template高级

    1 Template 高级属性 1 1 可变参数 CTemplatetest cpp 定义控制台应用程序的入口点 include stdafx h include
  • 调整计算机硬盘大小,固态硬盘分区如何合并 自己调整磁盘大小真的很实用

    1 首先在桌面找到 计算机 右键单击 在快捷菜单栏中选择 管理 弹出计算机管理窗口 2 在计算机管理窗口中选择 储存 磁盘管理 在右边就会显示你的分区情况了 3 我们选择一个空间比较大的盘符进行分割 举个例子 我们盘有40G是空余 我们要分
  • 使用 LangChain 和 DeepInfra 构建用于支持客户的聊天机器人

    您可能在日常在线互动中遇到过聊天机器人 但您是否考虑过为这些数字助手提供支持的技术 聊天机器人 特别是在客户支持领域 已成为现代企业的重要组成部分 可以在提高效率的同时增强客户服务 今天 我们将深入探讨LangChain和DeepInfra
  • 网络操作相关命令

    netstat r 显示路由表 I i 显示网络接口信息 s 收发包统计信息 v 显示详细信息 包括unix socket 连接状态和路径 e 还能显示user p 显示使用它的进程 l listening a 所有的 n 不解析域名 用户
  • SaltStack_00_基本操作

    文章目录 0x00 背景 0x01 基础环境安装 0x02 执行命令 0x03 数据系统Grains Pillar 0x00 背景 OS CentOS 7 SaltStack 2015 5 10 Lithium 0x01 基础环境安装 按照
  • 【Qt教程】3.1 - Qt5 event事件、Label控件的鼠标事件捕获

    1 event简介 事件 event 是由系统或者Qt本身在不同的时刻发出的 当用户按下鼠标 敲下键盘 或者是窗口需要重新绘制的时候 都会发出一个相应的事件 一些事件在对用户操作做出响应时发出 如键盘事件等 另一些事件则是由系统自动发出 如
  • Vmware vSphere 5.0系列教程之六 虚拟机及主机配置文件的创建和模板部署

    转载至 http andygao blog 51cto com 323260 838572 我们安装VMware vSphere 的目的就是在一台物理ESX主机上安装很多很多的虚拟机 我们可以通过VMware vSphere Client直
  • python(pandas + numpy)数据分析的基础操作

    文章目录 数据 NaN 值排查 统计 排序 基本统计方法 四种基本统计方法 分组 data groupby 聚合 data agg apply transform 透视图 Pandas 数据预处理 Pandas 其他函数应用 数据清洗 数据
  • 华为产品测评官-开发者之声-CodeArts体验感想

    目录 个人感想 CodeArts功能分析 总结 个人感想 2023华为产品测评官 开发者之声 活动的奖品相当诱人 有筋膜枪 鼠标 无人机等等 我承认我一开始参加这个活动是冲着奖品去的 但是真正去把这些产品都体验了一遍之后 我发现 每个产品都
  • C++实现链表合并

    include
  • 2023华为OD机试python【代表团坐车】

    前言 本答案使用python解答 如果需要Java版本题解 请参考 Java版本 题目 现在要组织一场活动 有多个代表团需要参加活动 已知多个代表团同时到达 但是接待处可用的客车只有一辆 你现在需要计算的是 可以坐满车的接待方案 并且输出有
  • 随笔:使用OpenAI的Embeddings API和Complation API实现客服问答

    去年11月openAI推出了Chat GPT 掀了好大一股浪 前段时间看了一下openAI的API看不看如何通过openAI 的语言处理模型来处理一下客服回复 下面做个笔记记录一下 为什么研究 Open AI 现有的模型没有我们特定场景下的
  • 【Centos】服务管理、解/压缩、磁盘、进程管理相关命令

    文章目录 一 服务管理 1 service 2 chkconfig设置后台服务器的自启配置 3 systemctl 设置后台服务器自启配置 防火墙关闭 4 开关机重启 5 搜索查找类find 6 locate快速定位文件路径 7 其他命令
  • Java语言特点与学习

    Java语言是一款面向对象的一款高级语言是由Sun Microsystems公司 现已被oracle公司收购 由James Gosling和同事们共同研发 并在1995年正式推出 据oracle官方数据指数 目前全球已有上亿的系统是使用Ja
  • io流中用到的设计模式

    总括 适配器模式 装饰者模式 public void testInputStreamReader throws Exception private static final String SEPARATOR File separator F