转换流和流操作规律

一、读取转换流
将字节流对象转换成字符流对象,使用转换流,InputStreamReader是字节流通向字符流的桥梁。存在硬盘上的是字节,读取出来的是字符,所以是字节转字符。
InputStreamReader本身是个字符流,需要传递进去一个字节流。
键盘录入最常见写法
BufferedReader bufr = new BufferedReader(newInputStreamReader(System.in));

二、写入转换流
OutputStreamWriter是字符流通向字节流的桥梁。录入的是字符,存在硬盘上的是字节,所以是字符转字节。
BufferedWriter bufw = new BufferedWriter(newOutputStreamWriter(System.out));

三、流操作规律
      之间的文章介绍的流操作,基本是两种形式。一是:在程序中写字符串,保存在内存里,然后写到文件中。
二是:读文件,保存在内存里,然后写到另一个文件中,即拷贝。
另外还有几种形式:
1、把键盘录入的数据显示在控制台上
源:键盘      System.in
目的:控制台     System.out
2、把键盘录入的数据存储到一个文件中
源:键盘录入     System.in
目的:文件         newFileOutputStream("");
3、把一个文件打印在控制台上。
源:文件          new FileInputStream("");
目的:控制台     System.out
-----------------------------------------------------------
流操作的基本规律:
通过三个明确来完成
1、明确源和目的
源:输入流InputStream    Reader
目的:输出流OutputStream   Writer
2、操作的数据是否是纯文本。
是:字符流
否:字节流
3、再明确使用哪个具体的对象通过设备来区分:
源设备:内存,硬盘,键盘
目的设备:内存,硬盘(文件),控制台。
4、是否需要提高效率:
是:加入缓冲区

-------------------------------------------------------------
接下来用上面的方法举例分析:
需求一:把键盘录入的数据存储到一个文件中。并且加入指定的编码表
源:  InputStream,Reader
        是不是纯文本?(键盘录入的肯定是纯文本)是,则用Reader
        设备:是键盘,对应的对象是System.in.  (不是选择Reader吗?System.in对应的不是字节流吗?)
        为了操作键盘的文本数据方便,转成字符流,按照字符串操作是最方便的。
        所以既然明确了Reader,那么就将System.in转换成Reader. 用Reader体系中的读取转换流,
        InputStreamReader.
        代码部分: InputStreamReader isr = newInputStreamReader(Sysem.in);
        需要提高效率吗?需要!BufferedReader
        代码部分:BufferedReader bufr = new BufferedReader(isr);
目的:OutputStream,Writer
        是否是纯文本?是!Writer.
        设备:硬盘。一个文件。使用FileWriter.  但是FileWriter使用的是默认编码表--GBK,而指定的编码表只有转换流可以指定(这是转换流的主要作用)所以使用的对象是OutputStreamWriter.而该转换流对象要接受一个字节输出流。而且是还可以操作文件的字节输出流,因此选择FileOutputStream.
        代码部分:OutputStreamWriter osw = new OutputStreamWriter( newFileOutputStream("d.txt"),"UTF-8");
        需要提高效率吗?需要!BufferedWriter
        代码部分:BufferedWriter bufw = new BufferedWriter(osw);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于Python的人口动数据分析是指使用Python编程语言进行处理和分析人口动相关的数据。Python提供了丰富的数据处理和分析库,使得人口动数据的获取、清洗、可视化和建模变得更加简单和高效。 在进行人口动数据分析时,可以使用以下Python库: 1. Pandas:Pandas是一个强大的数据处理库,提供了高效的数据结构和数据分析工具。可以使用Pandas读取和处理人口动数据,进行数据清洗、转换和聚合操作。 2. NumPy:NumPy是Python科学计算的基础库,提供了高性能的数值计算功能。可以使用NumPy进行数值计算、数组操作和统计分析。 3. Matplotlib和Seaborn:Matplotlib和Seaborn是用于数据可视化的库,可以绘制各种类型的图表,如折线图、柱状图、散点图等,用于展示人口动数据的趋势和关联性。 4. Scikit-learn:Scikit-learn是一个机器学习库,提供了各种常用的机器学习算法和工具。可以使用Scikit-learn进行人口动数据的建模和预测。 在进行人口动数据分析时,可以按照以下步骤进行: 1. 数据获取:从各种来源获取人口动相关的数据,如人口普查数据、移民数据、人口迁徙数据等。 2. 数据清洗和预处理:使用Pandas进行数据清洗,包括处理缺失值、异常值和重复值,进行数据转换和格式化。 3. 数据探索和可视化:使用Matplotlib和Seaborn绘制各种图表,如地图、热力图、时间序列图等,探索人口动的趋势和关联性。 4. 数据分析和建模:使用NumPy和Scikit-learn进行数据分析和建模,如聚类分析、回归分析、时间序列分析等,挖掘人口动数据中的规律和趋势。 5. 结果解释和报告:对分析结果进行解释和总结,生成可视化报告或者撰写分析报告,向相关人员或者决策者提供有关人口动的见解和建议。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值