IO流-04

从菜鸟到高手:我的Abaqus壳单元S4R、S3R、S8R选择心路历程 第一次打开Abaqus的单元库时,我被琳琅满目的壳单元类型晃花了眼。S4R、S3R、S8R、STRI65、S9R5...这些看似随意的字母数字组合,背后却隐藏着影响仿真精度的关键密码。作为一名从土木工程转行到汽车结构仿真的工程师,我花了三年时间才真正理解如何根据问题特性精准选择壳单元。这段学习历程充满试错与顿悟,今天就用几个关键案例,分享我的壳单元选择方法论。 阅读详情


1.装饰设计模式:
当想要对已有的对象进行功能增强时,可以定义类,
将已有对象传入,基于已有的功能,并提供加强功能
那么自定义的该类称为装饰类。

装饰类通常会通过构造方法接收被装饰的对象。
并基于被装饰的对象的功能,提供更强的功能。

装饰模式比继承要灵活,避免了继承体系臃肿。
而且降低了类与类之间的关系。

装饰类因为增强已有对象,具备的功能和已有的是相同的,只不过提供了更强功能。所以装饰类和被装饰类通常是
都属于一个体系中的。

class Person
{
 public void chifan()
 {
  System.out.println("吃饭");
 }
}
class SuperPerson
{
 private Person p;//定义一个Person类类型属性
 SuperPerson(Person p) // 构造函数
 {
  this.p = p;
 }
 public void superChifan()
 {
  System.out.println("开胃酒");
  p.chifan(); // 直接调用Person中方法
  System.out.println("甜点");
  System.out.println("来一根");
 }
}
class PersonDemo
{
 public static void main(String[] args)
 {
  Person p = new Person();//new一个p对象;
  
  SuperPerson sp = new SuperPerson(p);//这个p是new出来的p,
  sp.superChifan();
 }
}

 

2.使用LineNumberReader()中的方法,读取行号,可使用的方法为getLineNumber()和setLineNumber();

import java.io.*;
class LineNumberReaderDemo
{
 public static void main(String[] args)throws IOException
 {
  FileReader fr = new FileReader("PersonDemo.java");
  
  LineNumberReader lnr = new LineNumberReader(fr);//建立LineNumberReader,并传入字节流对象
  
  String line = null;
  lnr.setLineNumber(100);//设置行号初始数为100(不包含),从101开始
  while((line=lnr.readLine()) != null)
  {
   System.out.println(lnr.getLineNumber()+":"+line);
   //获取行号从1号开始输出 ,输出行号和内容
  }
  lnr.close();
 }
}

3.练习:模拟一个带行号的缓冲区对象
import java.io.*;
class MyLineNumberReader
{
 private Reader r;
 private int lineNumber;
 
 MyLineNumberReader(Reader r)
 {
  this.r = r; 
 }
 
 public String myReadLine()throws IOException
 {
  lineNumber++; //行号自增。
  StringBuilder sb = new StringBuilder();//建立StringBuilder容器,并创建对象
  int ch = 0;
  
  while((ch=r.read()) != -1)//while循环判断文件是否为空
  {
   if(ch == '\r')
    continue;
   if(ch == '\n')
    return sb.toString();
   else
    sb.append((char)ch); //添加数据
  }
  if(sb.length() != 0)
   return sb.toString();
  return null;
   
 }
 
 public void setLineNumber(int lineNumber)//设置行号
 {
  this.lineNumber = lineNumber; 
 }
 public int getLineNumber()//获取行号
 {
  return lineNumber; 
 }
 
 public void myClose()throws IOException //自定义关闭流对象方法
 {
  r.close(); 
 }
}

class MyLineNumberReaderDemo
{
 public static void main(String[] args)throws IOException
 {
  FileReader fr = new FileReader("PersonDemo.java");
  MyLineNumberReader mylnr = new MyLineNumberReader(fr); //创建MyLineNumberReader对象,并传入流对象
  
  String line = null;
  mylnr.setLineNumber(100); //设置行号
  while((line = mylnr.myReadLine()) != null)
  {
   System.out.println(mylnr.getLineNumber()+"::"+line);//输出行号和内容
    
  }
  mylnr.myClose();
 }
}

 

个人总结:装饰设计模式是是增强功能,通常用构造方法接收被装饰的对象,比继承更灵活,减少类之间的关系

                 掌握行号的输出方法,利用LineNumberReader()方法创建对象,使用setLineNumber()设置行号和

                 getLineNumber()获取行号的方法 了解LineNumberReader()内部运行原理,并能用代码实现

 

两层板如何做阻抗控制呢 两层板如何做阻抗控制呢? 这个问题可能很多人都会碰到,有的人在此等需要做阻抗控制的情况都选择做多层板。诚然,多层板在阻抗控制,EMC等等方面都有着天然的优势。然而,在价格上和周期上,两层板就有着绝对优势了。 对于成本非常敏感而又不是太复杂的产品,尽管对于我们硬件工程师而言,有一堆的理由要求使用多层板。然而在面对毛都不懂的老板“别人能做,你为什么不能做?”这个问题时只得低下我们高傲的头颅。 好... 阅读详情

相关推荐

机械设计师必看:如何用Autodesk Inventor高效完成钣金设计(附实战案例)

本文为机械设计师详细解析了如何利用Autodesk Inventor Professional高效完成钣金设计。文章通过一个钣金防护罩的实战案例,系统介绍了从核心设计逻辑、建模流程、参数化技巧到工程图输出的完整工作流,旨在帮助设计师掌握智能化的设计方法,显著提升从概念到制造的设计效率与准确性。

honey的博客 1181

IO流-04:认识IO流

负责把数据读到内存中去负责从内存写数据出去IO流:是用来读、写文件的。可见上面的出、入,是针对内存来说的。

casually的博客 441

ROS2新手必看:5分钟搞定Gazebo机器人仿真环境搭建(含避坑指南)

本文为ROS2新手提供了在Gazebo中快速搭建机器人仿真环境的详细指南。内容涵盖ROS2与Gazebo的协同架构理解、基础环境配置、机器人模型构建、传感器集成以及环境创建,并包含实用的避坑指南和调试技巧,帮助开发者高效掌握物理仿真技术。

weixin_29100927的博客 430

04- IO流

IO流基础 硬盘 内存 一台电脑启动过程 把硬盘中的操作系统 读取到内存中 关机 把内存中的东西清空 , 保存到硬盘中 把电脑的内存当成 程序执行的位置 硬盘中的文件读取到内存中 为输入流 内存中的文件写出到硬盘中 为输出流 File 文件或目录路径名的抽象表示 常用属性 separator // 与系统相关的默认名称 - 分隔符字符,以方便的方式表示为字符串 windows "\" ...

linyuancsdn的博客 241

网闸的基本配置

本文详细介绍了网闸的基本配置流程,包括物理连接与初始化、网络基础配置、核心数据交换策略配置、安全增强配置、管理与运维以及测试验证等关键步骤。网闸通过在物理隔离环境下建立"数据摆渡通道",实现特定业务数据的安全交换。配置时应遵循最小化、单向化、内容控制和审计原则,确保只开放必要通道,优先采用单向传输,进行内容安全检查并记录操作日志。不同厂商网闸的配置界面可能不同,但核心逻辑是相通的。

qq_39980997的博客 1839

IC 时钟设计核心问题与高质量系统设计指南(附源码)

本文深入探讨了IC时钟设计的核心问题与高质量系统设计方法。时钟系统作为IC的"心脏",其性能直接影响时序稳定性、功耗效率和可靠性。文章从五个维度展开分析:时钟源选择与性能匹配、时钟分配网络设计、抖动抑制、多时钟域管理和功耗优化。针对高质量时钟系统设计,提出了时钟源优化、时钟树结构优化、干扰抑制与仿真验证等具体方法。同时,系统阐述了时钟与复位的协同设计关系,强调异步复位同步释放等技术的重要性。文章还总结了高质量IC系统设计的综合要点,包括电源/信号完整性、时序功耗平衡、可靠性设计及全流程验

Open 1060

io流(学习笔记04)io流的概述

作用:读取数据定义:i指input,表示输入流,负责把数据读到内存内。o指output表示输出流,负责把写数据出去应用场景:展示数据,读取数据,保存数据...需要了解io流的分类和体系io流作用和用法io流总体四大类定义字节输入流以内存为基准,来自磁盘文件/网络中的数据以字节的形式读入到内存中去的流。字节输出流以内存为基准,把内存中的数据以字节写出到磁盘文件或者网络中去的流。字符输入流以内存为基准,来自磁盘文件/网络中的数据以字符的形式读入到内存中去的流字符输出流。

BaiZhuYuan的博客 476

【华为鸿蒙3.0/荣耀安卓12使用VMOS Pro的激活方式】

解压激活工具 →连接数据线 轻松搞定激活!

Amy_mumu的博客 142万+

JavaSE 一些技巧 04——IO流各种流常用代码整理

IO流,缓冲流,打印流

m0_46507516的博客 512

学术规范与论文写作(雨课堂)研究生 全部答案

1:如何造就优秀的学术论文 论文语法判断题 :全部是错的 2:如何撰写学术论文 3: SCI论文写作经验分享 4:论文写作与投稿技巧 5:学术伦理道德 答案仅供参考,研究生生活不易,大家如果有时间的话,还是可以学习学习的,毕竟老师讲的不错。加油,希望读研的每一个人都能顺利毕业! ...

Always-Learning 13万+

华为产品安全基线

一、敏感信息安全传输 1、采用HTTPS安全协议传输 2、客户端本地保存的敏感信息,需要先加密再保存使用,不可逆支持PBKDF2(迭代10000次)加密保存,可逆支持AES256+IV保存,密钥支持可更新 二、认证鉴权 1、License中心与分析节点分布式部署,需要做用户名+口令安全认证,支持使用HTTPS安全协议。 2、客户端登录支持防暴力破解,支持验证码,多次连续尝试登陆失败后锁定账...

zileixu的博客 1万+

04Properties集合与Io流

Properties集合 java.util.Properties 集合 extends Hashtable implements Map<k,v> Properties是一个持久的属性集,可通过流保存到硬盘,或通过流从硬盘中加载到内存 Properties是唯一一个和IO流相结合的集合 Properties的key值和value值都是字符串 常用的方法 //1.setProp...

qq_44784185的博客 435

基于深度学习的航拍图像中地物变化检测

随着无人机技术的飞速发展,航拍图像成为获取地表信息的重要手段之一。然而,由于地球表面的不断变化,监测和识别航拍图像中的地物变化成为一项具有挑战性的任务。在人工智能领域,深度学习技术的兴起为地物变化检测提供了全新的解决方案。本文将介绍基于深度学习的航拍图像中地物变化检测的方法,并附上相应的代码实例。

一键难忘的博客 4175

黑马程序员-IO流04

1. 打印流:   1. 永远不 会抛出IO异常   2. 打印流不操作数据源,只操作数据目的   3. 就是向数据目的中打印数据     PrintStream    构造方法接受      File对象      字节输出流      String类型的文件名        PrintWriter  *****    构造方法接受      File对象

shengxiaguang的专栏 853

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

01_04_java IO流

前言 文章内容输出来源:拉勾教育Java就业训练营 上一阶段 java异常机制和File类 IO流 IO流的概念 IO就是Input和Output的简写,也就是输入和输出的含义。 IO流就是指读写数据时像流水一样从一端流到另外一端,因此得名为“流"。 基本分类 按照读写数据的基本单位不同,分为 字节流 和 字符流。 1.其中字节流主要指以字节为单位进行数据读写的流,可以读写任意类型的文件。 2.其中字符流主要指以字符(2个字节)为单位进行数据读写的流,只能读写文本文件。 按照读写数据的方向不同,分为

weixin_41596178的博客 202

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Java核心基础——04 - IO流

Java的IO流

m0_47360542的博客 206

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

00023.04 System类中的IO流

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例

小良的博客 154

2021-04-21 IO流

2021-04-21 IO流 按处理的数据单元分类: 字节流:以字节为单位获取数据,命名上以Stream结尾的流一般是字节流,顶级类InputStream、OutputStream。 字符流:以字符为单位获取数据,命名上以Reader/Writer结尾的流一般是字符流,顶级类Reader、Writer。 按处理对象不同分类 节点流:可以直接从数据源或目的地读写数据,如FileInputStream、FileReader等。 处理流:不直接连接到数据源或目的地,是”处理流的流”。通过对其他流的处理提高程序.

Amory的博客 221

2020-8-11 IO流_04

打印流: 打印流写数据: 1.write(数据类型 ~): 2.print(数据类型 ~): 3.println(数据类型 ~):自动换行; 自动刷新: PrintWriter pw=new PrintWriter(Writer out,boolean autoFlush); 刷新println,printf,format; 标准输入输出流: System中的字段:in,out; 它们各代表了系统标准的输入和输出设备; 默认输入设备为键盘,输出设备是显示器; System.in的类型是Inp

FlowerLoveJava的博客 140

API_Day04_文本操作-IO流

IO流 就是对文件的一种操作 简介:IO这是两个过程-相对于程序来说,输入(读入)和 输出(读出)的过程 I 是读取过程 in – 从磁盘读取到程序 O 是写出过程out – 从程序写出到磁盘 一、传统的IO 流分四种类型 InputStream,OutputStream基于字节操作的IO流 Write,Reader 基于字符操作的IO流 File基于磁盘操作的IO Socket 基于网络操作的IO 1.1 流的概念 ​ 数据的读写抽象成数据,在管道中流动 流的特点 流只能单向流动 输入流用来读取in

qq_45621766的博客 251

04 IO流总结 异常处理机制

是一个高级的字符流,特点是块读文本数据,并且可以按行读取字符串。 IO总结 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jLyHCn3r-1654005117489)(IO.png)] 异常处理机制中的finally finally块定义在异常处理机制中的最后一块。它可以直接跟在try之后,或者最后一个catch之后。finally可以保证只要程序执行到了try语句块中,无论try语句块中的代码是否出现异常,最终finally都必定执行。finally通常用来做释放资源

qq_54781283的博客 224

Java零基础学java之IO流--04IO流原理及流的分类

## IO流原理及流的分类 ### Java IO流原理 1. I/O是Input/Output的缩写,I/O技术是非常实用的技术,用于处理数据传输如读/写文件,网络通讯等 2. Java程序中,对于数据的输入/输出操作以“流(stream)” 的方式进行 3. java.io包下提供了各种“流”类和接口,用以获取不同种类的数据,并通过方法输入或输出数据 4. 输入input:读取外部数据(磁盘、光盘等存储设备的数据)到程序(内存)中 5. 输出output:将程序(内存)数据输出到磁盘、光盘等存储设备

爱学习的正正的博客 304

IO流学习04(Java)

因为此处使用的是try...catch的方式,所以我们要把fis、fos放到外面以成员变量的形式存在,而不是局部变量,避免在finally中报错,另外因为存在资源链接是否成功建立的问题,所以fis和fos可能存在连接不上而依旧是null的情况,这个时候在释放资源时就会报空指针的错误,为了防止这种情况,我们需要给它加上判断。

qq_57773712的博客 107

java第二册—04IO流

IO流 一、File类 File类代表一个特定的文件或者目录,并提供了若干方法对该文件或目录进行操作。 代码1: import java.io.File; public class Test { public static void main(String[] args...

ChenxiLiylnf的博客 275

【探索Java世界04】Java的IO流

I/O 输入/输出流(数据流动)数据流动的方向: 读数据(输入Input) 写数据(输出Ootput)文件流缓冲流字符流对象流。

专注于技术的小龚,在Java领域死磕... 121

Java基础--IO流04(IO流中的其他流,编码)

操作对象的流ObjectOutputStream 被操作的对象需要实现Serializable(标记接口),该类可以将Java对象的基本数据类型和图形写入OutputStream,可以使用ObjectInputStream读取对象,通过在流中使用文件可以实现对象的持久存储; 构造函数:ObjectOutputStream(Output

junior8289的博客 493
上一篇: IO流—03
下一篇: IO流-05
麦豆东东
博客等级 码龄14年 2粉丝 72原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值