黑马程序员------------IO流

本文深入探讨Java IO流的基础概念,包括Runtime对象、IO流的用途、流的分类及常用基类,以及如何使用字符流和字节流操作文件。通过实例展示了如何创建文件并写入文字数据,以及如何通过键盘录入数据并保存到文件中。

      -----------android培训java培训、java学习型技术博客、期待与您交流!-----------

 Javaio

Runtime对象:

该类并没有提供构造函数。

说明不可以new对象。那么会直接想到该类中的方法都是静态的。

发现该类中还有非静态方法。

说明该类肯定提供了方法获取本类对象。而且方法是静态的,并返回值类型是本类类型。

有这个特点可以看出该类使用了单例设计模式完成,保证了对象的唯一性。

该方法是static Runtime getRuntime();

IO(Input Output)

1.IO流用来处理设备之间的数据传输。

2.Java对数据的操作是通过流的方式。

3.Java用于操作流的对象都在IO包中。

4.流按操作数据分为两种:字符流与字节流。

5.流按流向分为:输入流,输出流。

IO流常用基类

1.字节流的抽象基类:

InoutStream,OutputStream.

字符流和字节流:

字符流两个基类:

InputStream   OutputStream

字符流量个基类:

Reader         Writer

先学习一下字符流的特点;

既然IO流是用于操作数据的,那么数据的最常见体现形式是:文件。

那么闲一操作文件为主来演示。

需求:在硬盘上,创建一个文件并写入一些文字数据。

找到一个专门用于操作文件的Writer子类对象。FileWriter.后缀名是父类名,前缀名是该流对象的功能。


 


字符流的缓冲区

1、缓冲区的出现提高了对数据的读写效率。

2、对应类。

(1)、BufferedWrite

(2)、BufferedReader

3、缓冲区要结合流才可以使用。

4、在流的基础上对流的功能进行了增强。


IO流(用字节流通过缓冲区复制文本文件)

/*通过缓冲区复制文件*/


IO流(读取键盘录入)

System.out:对应的是标准输出设备:控制台

System.in:对应的是标准输入设备 :键盘

/*
需求,通过键盘录入数据。
当录入一行数据后,就将改行数据进行打印,如果录入数据是over,那么停止录入



面向对象

流操作的基本规律:最痛苦的就是流对象有很多,不知道该用那一个。

通过明确来完成。

(1)、明确源和目的

源:输入流InputStream Reader

目的:输出流OutputStream Writer

(2)、操作的数据是否是纯文本

是:字符流 Reader Writer

不是:字节流 InputStream OutputStream

(3)、当体系明确后,再明确要使用那个具体的对象

通过设备来进行区分:

源设备:内存 硬盘 键盘

目的设备:内存 硬盘 控制台

/*需求:将一个文本文件中数据存储到另一个文件中。复制文件*/

源:因为是源,所以使用读取流。InputStream Reader

是否是纯文本文件:是,所以使用 Reader

接下来明确要使用该体系中的那个对象:

明确设备,硬盘,一个文件。

Reader体系中可以操作文件的是,FileReader。

是否需要提高效率?

BufferedReader

目的:因为是目的,所以使用写入流。OutputStream Writer

是否是纯文本文件:是,所以使用 Writer

接下来明确要使用该体系中的那个对象:

明确目的,硬盘,一个文件。

Writer 体系中可以操作文件的是,FileWriter。

是否需要提高效率?需要。BufferedWriter

/*需求:将键盘录入的数据保存到一个文件中这个需求中有源和目的都存在,那么分别分析*/

源:因为是源,所以使用读取流。InputStream Reader

是否是纯文本文件:是,所以使用 Reader

接下来明确要使用该体系中的那个对象:

明确设备,键盘。对应的对象是System.in。

 不是选择Reader吗?System.in 对应的不是字节流吗?

为了操作键盘的文字数据方便,字节流可以转换成字符流,按照字符串操作最方便。

既然明确了Reader 就将 System.in 转换成Reader

用到了Reader 体系中的转换流,InputSteamReader

需要提高效率吗?需要,BufferedReader

目的:因为是目的,所以使用写入流。OutputStream Writer

是否是纯文本文件:是,所以使用 Writer

接下来明确要使用该体系中的那个对象:

明确目的,硬盘,一个文件。

Writer 体系中可以操作文件的是,FileWriter。

是否需要提高效率?需要。BufferedWriter

扩展想要把录入的数据按照指定的编码表(UTF-8),将数据存到文件中,使用转换流,里面可以指定编码。

目的:OutputStream Writer

是否是纯文本?是,Writer

接下来明确要使用该体系中的那个对象:

明确目的,硬盘,一个文件。

Writer 体系中可以操作文件的是,FileWriter。

但是存储时,需要加入指定的编码表,而指定的编码表,只有转换流可以指定。

所以要使用的对象是OutputStreamWriter.

而该转换流对象要接收一个字节输出流。

而且还可以操作文件的字节输出流,FileOutputStream

是否需要提高效率?需要。BufferedWriter

所以,记住,转化暖流什么时候使用,字符和字节之间的桥梁,通常,涉及到字符编码转换时,需要用到转换流。

IO流(改变标准输入输出设备)

System

IO流(异常的日志信息)








一、 内容概要 本资源提供了一个完整的“金属板材压弯成型”非线性仿真案例,基于ABAQUS/Explicit或Standard求解器完成。案例精确模拟了模具(凸模、凹模)与金属板材之间的接触、压合过程,直至板材发生塑性弯曲成型。 模型特点:包含完整的模具-工件装配体,定义了刚体约束、通用接触(或面面接触)及摩擦系数。 材料定义:金属板材采用弹塑性材料模型,定义了完整的屈服强度、塑性应变等真实应力-应变数据。 关键结果:提供了成型过程中的板材应力(Mises应力)、塑性应变(PE)、厚度变化​ 云图,以及模具受力(接触力)曲线,完整再现了压弯工艺的力学状态。 二、 适用人群 CAE工程师/工艺工程师:从事钣金冲压、模具设计、金属成型工艺分析与优化的专业人员。 高校师生:学习ABAQUS非线性分析、金属塑性成形理论,或从事相关课题研究的硕士/博士生。 结构设计工程师:需要评估钣金件可制造性(DFM)或预测成型回弹的设计人员。 三、 使用场景及目标 学习目标: 掌握在ABAQUS中设置金属塑性成形仿真的全程,包括材料定义、复杂接触设置、边界条件与载荷步。 学习如何调试和分析大变形、非线性接触问题的收敛性技巧。 理解如何通过仿真预测成型缺陷(如减薄、破裂、回弹),并与理论或实验进行对比验证。 应用价值:本案例的建模方法与分析思路可直接应用于汽车覆盖件、电器外壳、结构件等钣金产品的冲压工艺开发与模具设计优化,减少试模成本。 四、 其他说明 资源包内包含参数化的INP文件、CAE模型文件、材料数据参考及一份简要的操作要点说明文档。INP文件便于用户直接修改关键参数(如压边力、摩擦系数、行程)进行自主研究。 建议使用ABAQUS 2022或更高版本打开。显式动力学分析(如用Explicit)对计算资源有一定要求。 本案例为教学与工程参考目的提供,用户可基于此框架进行拓展,应用于V型弯曲
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值