关于流的一些基本操作

缓冲流的作用:

   如果不用缓冲流的话,程序是读一个数据,写一个数据。这样在数据量大的程序中非常影响效率。  缓冲流作用是把数据先写入缓冲区,等缓冲区满了,再把数据写到文件里。这样效率就大大提高了

关于各种流的操作规律:


之所以要弄清楚这个规律是因为对象太多,开发时不知道用哪个对象合适。因此只需要明确以下四点:


1,明确源和目的:


源:InputStream(字节流)  Reader(字符流)


目的:OutStream(字节流) Writer(字符流)

2,明确数据是否是纯文本数据                                                                                           例如1:若是纯文本数据:源 Reader


源:是 Reader                                                                                                           目的是 Writer


否InputStream


目的  是 Writer                                                                                                         设备硬盘:File


否 OutStream                                                                                                   就有  FileReader in=new FileReader("路径");


到这里就可以明确是否用哪个体系了                                                        FileWriter out=new FileWriter("路径");


3,明确具体的设备                                                                                                    需要高效功能(缓冲流):


源。键盘:System.in     硬盘:file    内存: 数组     网络:Socket流                                 BufferedReader bufi= new BufferedReader(FileReader("路径"));


目的。控制台:System.out  硬盘:File 内存:数组  网络:Socket流                                   BufferedWriter bufw= new BufferedWriter(FileWriter("路径"));



4,是否需要其它额外功能:


是否需要高效(缓冲区):buffer



例二:读取键盘录入(字节)信息,并写入到一个文件中。需要将字节流转换成字符流,还需要高效的功能


InputStreamReader in=new  InputStreamReader(System.in);


FileWriter out=new FileWriter("路径");


高效的缓冲区: BufferedReader bufi=new BufferedReader(new  InputStreamReader(System.in));


BufferedWriter bufw=new BufferedWriter(new FileWriter("路径"));

 
时间: 2024-12-18 22:20:32

关于流的一些基本操作的相关文章

C++STL:流迭代器

流迭代器是一种迭代器适配器.istream_iterator用于读取输入流,ostream_iterator用于写输出流.这些迭代器将它们所对应的流视为特定类型的元素序列.使用流迭代器时,可以用泛型算法从流对象中读数据或将数据写入到流对象中. 流迭代器的构造函数如下: 流迭代器的基本操作如下: 1.流迭代器的定义. 流迭代器都是类模板:任何已定义输入操作符(>>操作符)的类型都可以定义istream_iterator,任何已定义输出操作符(<<操作符)的类型都可以定义ostream

C#文件操作(IO流 摘抄)

11 文件操作概述 11.1 驱动器 在Windows操作系统中,存储介质统称为驱动器,硬盘由于可以划分为多个区域,每一个区域称为一个驱动器..NET Framework提供DriveInfo类和 DriveType枚举型,以方便在程序中直接使用驱动器.DriveInfo类的常用字段成员有DriveFormat(文件系统格式,如NTFS或FAT32).DriveType(驱动器类型).Name(驱动器名).TotalSize(总空间).TotalFreeSpace(获得驱动器可用空间).常用的方

C# 文件操作(摘抄)

--选自<c# 编程兵书>第11章 张志强 胡君 编著 11 文件操作概述 11.1 驱动器 在Windows操作系统中,存储介质统称为驱动器,硬盘由于可以划分为多个区域,每一个区域称为一个驱动器..NET Framework提供DriveInfo类和 DriveType枚举型,以方便在程序中直接使用驱动器.DriveInfo类的常用字段成员有DriveFormat(文件系统格式,如NTFS或FAT32).DriveType(驱动器类型).Name(驱动器名).TotalSize(总空间).T

关于Socket的简单解析

最近在研究Socket的通信,感觉坑很多,多,多..所以今天就和大家来简单分享下Socket的使用方式,以及关于Socket的几个比较重要,容易被小伙伴们忽略且常用的方法, 好了,进入今天的正题. 在Android中,像 http请求.socket通信等等都属于网络通信的一种方式.http请求底层也是socket的一种实现方式. 我们今天的主题会围绕在Android中使用Socket来实现通信. 说到通信,可以简单理解为两方相互交流.双方即手机和远程服务器,我们可以把手机当做客户端,因为我们要与

.NET Core C# 中级篇2-7 文件操作

.NET Core CSharp 中级篇2-7 本节内容为文件操作 简介 文件操作在我们C#里还是比较常见的,例如我们读取Excel.Txt文件的内容,在程序中,这些文件都是以流的方式读取进入我们内存中,本节内容会详细的讲解有关文件的操作的方法. 我们从最大的驱动器开始往文件这个最小的开始讲解 驱动器读取 在Windows操作系统中,存储介质统称为驱动器,硬盘由于可以划分为多个区域,每一个区域称为一个驱动器..NET提供DriveInfo类和 DriveType枚举型,以方便在程序中直接使用驱动

2019秋季java课程总结

本学期面向对象与Java程序设计课程已经全部结束了,但Java程序设计的学习还远未到终点,大家就本学期的课程作一个全面的总结吧. 在此感谢各位助教的全力配合和辛勤劳动,辛苦了! 一.Java面向对象程序: 面向对象编程(基础篇): 1.类与对象.关于类的定义.状态与行为,类与对象的关系,对象的创建与使用. 2.封装性(setter与getter). 3.构造方法(类名 对象名称 = new 类名称). 4.匿名对象. 5.this关键字(强调本类中方法,表类属性,使用this调用本类构造方法,t

java 打印流PrintWriter基本操作

import java.io.*; public class PrintDemo { public static void main(String[] args) { PrintWriter writer=null; writer=new PrintWriter(System.out); String str=new String("Hello cjc!!!"); writer.print(str); writer.close(); try { writer=new PrintWrit

java 字符流writer、reader基本操作及理解

字符和字节有什么区别,额--这个我也不知道. 1.基本操作实例 import java.io.*; public class CharDemo { public static void main(String[] args) { File f=new File("F:\\workspace\\Javaprj\\test.txt"); Writer out=null; Reader in=null; try { out=new FileWriter(f); String str=&quo

java 管道流PipedOutputStream和PipedInputStream基本操作

java的管道流要PipedOutputSream和PipedInputStream结合起来使用,管道流主要用来进行线程之间的通信. 上代码 import java.io.*; public class PipeStreamDemo { public static void main(String[] args) { PipedOutputStream out=null; PipedInputStream in=null; Sender sender=new Sender(); Receiver