第9章 输入输出操作_第1页
第9章 输入输出操作_第2页
第9章 输入输出操作_第3页
第9章 输入输出操作_第4页
第9章 输入输出操作_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第9章 I/O操作 流File类的使用读取文件写入文件工作场景 WF蛋糕店采用纯文本的方式记录每天蛋糕店的交易流水,并根据记录的内容打印报表,记录内容如下: 1,20070802,A02,2,45,90 2,20070802,A01,3,40,120 151,20070805,B05,1,60,609.1 流 Java的数据流在java.io包中。数据流(stream)是指一组有顺序的、有起点和终点的字节集合,是对输入输出的总称。数据流完成从键盘接收数据、读写文件以及打印等数据传输操作。 9.1 流 I/O流 数据流分为输入流(InputStream)和输出流(OutputStream)两大类

2、。I/O流提供一条通道程序,可以使用这条通道把源中的字节序列送给目的地。 输入流的指向称作源,程序从指向源的输入流中读取源中的数据。 输出流的指向是字节要去一个目的地(或用户),程序通过向输出流中写入数据把信息传递到目的地。 9.1 流 缓冲流 为提高数据的传输效率,通常使用缓冲流(buffered stream),即为一个流配一个缓冲区(buffer),一个缓冲区就是专门用于传递数据的一块内存。 缓冲流的作用就在于提高了内存与外部设备之间的数据传输效率。9.1 流 常用流操作 Java的标准数据流是指在字符方式下(如DOS),程序与系统进行交互的方式,分三种即标准输入、标准输出和标准错误输出

3、。第一种方式的对象是键盘,而后两种方式的对象是屏幕。 Java通过系统类System实现标准输入输出的功能。9.1 流 标准输入流 标准输入流对应于键盘输入或者由主机环境或用户指定的另一个输入源。 S y s t e m . i n 作 为 字 节 输 入 流 类InputStream的对象in实现标准输入,其中接收数据采用方法read,如下: public in read() throws IOException public in read(byte b) throws IOException 标准输出流对应于显示器输出或者由主机环境或用户指定的另一个输出目标。 System.out作为打

4、印流类PrintStream的对象out实现标准输出。其中有print和println两个方法,如下: public void print(long l) public void println() 9.1 流 标准输出流9.1 流 标准错误输出流 System.err和System.out相同,以PrintStream类的对象err实现标准错误输出。通常,此流对应于显示器输出或者由主机环境或用户指定的另一个输出目标。 9.2 文件类的使用 WF蛋糕店的蛋糕记录存在文本文件中,进行文件的读取和写入前需要知道该文件是否存在,在必要时需要更改文件名或删除文件等各种文件操作。9.2 文件类的使用 F

5、ile类 File类提供了一些方法来操作文件和获得文件的信息。 创建File对象的构造方法有3个,如下: File(String filename); File(String directoryPath, String filename); File(String dir, String filename); 判断文件是否存在的应用:String FILEDBNAME = SaleData.txt;/创建SaleData.txt对象File fileDB = new File(FILEDBNAME); if(!fileDB.exists()/exists()方法判断文件SaleData.txt

6、是否存在 9.2 文件类的使用 获取指定文件的描述信息9.2 文件类的使用 创建新文件 把信息存入文件时,判断文件是否存在后,如果不存在该文件则需创建一个文件。9.2 文件类的使用 创建新文件创建新文件,应用代码如下:if(!fileDB.exists()tryfileDB.createNewFile(); /创建新文件catch(Exception ex) ex.printStackTrace(); 9.2 文件类的使用 文件改名和文件删除boolean renameTo(File dest)可用于重命名文件;boolean delete()可用于删除文件对象;9.2 文件类的使用 获取文件

7、目录下的文件目录操作方法,如下:boolean mkdir() String list()File listFiles()9.3 读取文件 WF蛋糕店的销售记录都是以文本的方式存储,而且是一行一行的记录,每行的字段以半角逗号隔开,在读取时需一次读取文本的一行,并将其以对象的形式保存在内存中。9.3 读取文件 读取文件并显示 创建BufferedReader对象读取销售记录文件,应用如下: public static final String FILEDBNAME = SaleData.txt; FileReader fr = new FileReader(FileInfo.FILEDBNAME

8、); BufferedReader br = new BufferedReader(fr);9.3 读取文件 读取文件并显示while(line != null) /循环读取文本文件if(line.length() = 0) break; maxSaleIdCounter+; /将一行变成一个记录对象 SaleRecord obj = this.convertStrToObj(line); FileInfo.saleList.add(obj); line = br.readLine(); /读取一行记录9.3 读取文件 字节流文件的读取 FileInputStream类是从InputStrea

9、m类中派生出来的输入类。 FileInputStream类的构造方法如下: FileInputStream(String name) FileInputStream(File file)9.3读取文件 字节流文件的读取 read方法给程序提供一个从输入流中读取数据的基本方法。read方法的格式如下: int read(); int read(byte b); int read(byte b, int off, int len); close()方法被用来在文件的最后一个字节被读取后关闭该文件流。 9.3 读取文件 字符流文件的读取 与FileInputStream类等价的读取器是FileRea

10、der类,它是Reader类的子类。FileReader类则采用字符流读取文件。 字符输入流是通过使用构造方法: FileReader(Sting filename)9.3读取文件 字符流文件的读取 创建FileReader类对象后,可以调用如下方法来从文件中读取字符: read() 以整数的形式返回流中下一个字符 read(char,int,int) 将字符读入特定的字符数组中,它具有指定的起始点和读取字符数量。9.3读取文件 读取字符行记录 逐行读取文件可以将FileReader类和BufferedReader类结合起来使用。将FileReader流对象外接到BufferedReader对

11、象上,从BufferedReader流上一行一行读取字符。 BufferedReader流可以使用readLine()方法来读取一行文本,也可以使用在FileReader中介绍的read方法进行读取。 9.4 写入文件 字节流文件的写入 FileOutputStream类提供了基本的文件写入能力,从OutputStream类继承来。一个文件输出流可以使用FileOutputStream自己的构造方法来创建。 其构造方法如下: FileOutputStream (String name) FileOutputStream (File file)9.4写入文件 字节流文件的写入 文件输出流可以使用write方法把字节发送给输出流,write方法的格式如下: public void write(int b) public void write(byte b) public void write(byte b,int off, in len) 9.4写入文件 字符流文件的写入 FileWriter被用来将一个字符流写入文件中。它是OutputStreamWriter的子类,它可以将Unicode代码转换成字节。FileWriter也有两个和FileReader类似的构造方法,如下: FileWriter(String b) FileW

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论