ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:31.29KB ,
资源ID:18416817      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/18416817.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第9章 输入输出流Word文档下载推荐.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

第9章 输入输出流Word文档下载推荐.docx

1、 FileInputStream datain = new FileInputStream(new File(); 文件没有指定路径,默认与应用程序在相同目录中。如果未找到指定文件,则抛 出FileNotFoundException异常。 (2)FileInputStream(FileDescriptor fdObj) 用FileDescriptor对象创建一个FileInputStream对象。 FileInputStream datain = new FileInputStream(); FileDescriptor定义了3个静态对象,等价于, 等价于,等价于。创 建FileInputSt

2、ream对象时,只能使用。采用这种方式创建的 FileInputStream对象可以从键盘读取数据。 (3)FileInputStream(String name) 用指定的文件名创建一个FileInputStream对象。 FileInputStream datain = new FileInputStream(); Windows环境中的路径分隔符号为“”,可用“”或“/”作为路径分隔符。d:javatempchapter092、FileInputStream对象操作FileInputStream对象常用操作如下:available():返回可读的字节数。若没有可读数据,返回值为0。 cl

3、ose():关闭文件输入流。 read():从输入流读取一个字节,返回值类型为int。若没有可读数据, 返回-1。 read(byte b):从输入流读取数据,按顺序放入b的各个数组元素中。 返方法回值类型为int,表示从流中读取的总的字节数。若没有可读数据, 返回值为-1。 read(byte b, int bindex,int count):最多从输入流读取count个字 节,按顺序放入b数组中下标从bindex开始的元素中。返方法回值类型为 int,表示从流中读取的总的字节数。若没有可读数据,返回值为-1。 skip(long n):在流中跳过n个字节。n不能为负数,否则产生错误。 Fi

4、leInputStream对象的各个方法在出现错误时,会抛出IOException 异常。IOException异常属于检查异常,必须在代码中捕捉或声明方法 抛出【例】使用FileInputStream对象读取文件数据。(源文 件位置:光盘:chapter09. ,光 盘:chapter09) useFileInputStream从文本文件中 读取数据,并显示在命令提示符窗口中。 文件内容如下: 1:first line 2:second line 3:third line程序代码如下: import .*; public class useFileInputStream public sta

5、tic void main(String args) throws IOException FileInputStream in = null; try in = new FileInputStream( (文件总字节数:+();*文件内容如下* int c;while ()!=0)/如果还有可读数据则循环 c = ();/读一个字节 /read方法返回的是int型数据,要按字符输出, /所以用char强制转换数据类型。 /如果不转换,输出为字符ASCII码的十进制值 (char)c);/输出 (*文件内容结束* ();/关闭流 in = new FileInputStream(/重新建立文件

6、输入流 int count=0; byte b=new byte5; (16);/跳过16个字节if()!=0) count=(b);/从流读取数据到字节数组 (用数组读出的数据: for(int i=0;icount;i+) (%-4d,bi);n 对应的字符:%-4s,(char)bi); finally if (in!= null) ();/关闭流 代码中使用了FileInputStream的各种方法,这些方法可能产 生IOException异常。代码中没有使用catch处理 IOException异常,所以在main方法的参数表之后使用 throws关键字声明方法可能抛出IOExcep

7、tion异常。 程序在finally代码块中关闭文件输入流。如果没有在程序中调 用close方法关闭流,系统可自动将其关闭。close方法在关闭 流的同时,释放维护流使用的相同资源,所以建议读者在代码 中显式调用close方法关闭流,以便提供相同效率。程序将关闭 流操作放在finally代码块中,这是因为不管程序运行是否有错, finally代码都会执行,从而保证关闭流。 说明:本例中文件内容为ASCII码字符。如果文件 中包含非ASCII码字符,比如汉字,按字节读取会导致非 ASCII码字符不能读取和显示。3、创建FileOutputStream对象可用下列方法创建FileOutputStr

8、eam对象: (1)FileOutputStream(File file) 用指定File对象创建文件输出流,向File对象指定的文件输出数据。该方法始终创建一个新文件。如果 已存在同名文件,原文件被覆盖。File对象指定的是一个文件夹或者文件路径错误,则会产生 FileNotFoundException异常。 FileOutputStream dataout = new FileOutputStream(new File( (2)FileOutputStream(File file, boolean append) 参数append为false时,与FileOutputStream(File

9、 file)相同。参数append为true时,表示向文件 添加数据。),true); (3)FileOutputStream(FileDescriptor fdObj) 用FileDescriptor对象创建文件输出流。 FileOutputStream dataout = new FileOutputStream(); (4)FileOutputStream(String name) 用指定文件名创建文件输出流,向文件输出数据,与FileOutputStream(File file)方法类似。 FileOutputStream dataout = new FileOutputStream(

10、 (5)FileOutputStream(String name, boolean append) 参数append为false时,与FileOutputStream(String name)相同。参数append为true时,表示向 文件添加数据。,true);4、FileOutputStream对象操作FileOutputStream对象常用操作如下:关闭文件输出流。 flush():刷新流,即向流中的数据全部写入文件。 write(int n):向文件写入一个字节。如果n大于255,即多余 一个字节,则将n的最后一个字节写入文件。写入文件的字节 n 视为字符的ASCII码。例如,writ

11、e(65)写入文件的是字符A ASCII write(65) A (其ASCII码为65)。 write(byte b):将字节数组b中的数据按顺序写入文件。 write(byte b, int bindex,int count):将字节数组b中下 标从bindex开始的count个元素写入文件。 FileOutputStream对象的各个方法在出现错误时,会抛出 IOException异常。使用FileOutputStream对象向文件写数据。(源文件位置: 光盘:chapter09,光 盘:chapter09) useFileOutputStream首先将文本文件中的数 据复制到新文件中,

12、再为文件添加部分数据。 春晓 春眠不觉晓 处处闻啼鸟 夜来风雨声 花落知多少 /将文件中的数据复制到文件中,并添加部 分数据 import .*; public class useFileOutputStream public static void main(String args) throws IOException FileInputStream in = null; FileOutputStream out = null; out = new FileOutputStream(/复制文件 while ()!=0) /如果还有可读数据则循环 (); /关闭输出流 /重新打开文件,添加数

13、据 out = new FileOutputStream( (n /写入一个换行符 /24897的二进制为110000101000001,第二个字节为字符A的 / ASCII码,所以下面的语句实际写入的是字符A (24897); /写入一个换行符 byte b=new byte10; for(byte i=0;i+) bi=(byte)(97+i); (b); /将输入写入文件,实际写入abcdefghij (文件操作结束! if (out! /关闭流 /关闭流 字符流字符流按字符读取和写入数据。Java采用Unicode字符,在 读写文件时,字符流可以自动将文件中的本地字符转换为 Unico

14、de字符。本节介绍两个字符流类:FileReader(读文 件)和FileWriter(写文件)。 FileReader和FileWriter类的基类分别为 InputStreamReader和OutputStreamWriter类, InputStreamReader和OutputStreamWriter类分别继承抽 象类Reader和Writer。InputStreamReader和 OutputStreamWriter类可以按本地字符集和指定字符集读 写文件。文件中的数据仍按字节读写,InputStreamReader 和OutputStreamWriter流完成字符和字节的转换。 Fi

15、leReader和FileWriter流采用本地字符集读写文件。1、创建FileReader对象可用下列方法创建FileReader对象: FileReader (File file) 用File对象创建一个FileReader对象,File对象指定实际访问的磁 盘文件。 FileReader datain = new FileReader (new File( FileReader (FileDescriptor fdObj) 用FileDescriptor对象创建一个FileReader对象。 FileReader datain = new FileReader (); FileReade

16、r (String name) 用指定的文件名创建一个FileReader对象。 FileReader datain = new FileReader (2、FileReader流常用操作FileReader流常用操作如下: getEncoding():返回文件采用的字符集。关闭流。从流读取一个字符,返回值类型为int。若没有可读 数据,返回-1。 read(char b):从流读取字符,按顺序放入b的各个数组元 素中。返方法回值类型为int,表示从流中读取的总的字符数。 若没有可读数据,返回值为-1。 read(char b, int bindex,int count):最多从输入流读取 c

17、ount个字符,按顺序放入b数组中下标从bindex开始的元素 中。在流中跳过n个字符。n不能为负数,否则产 生错误。3、创建FileWriter对象可用下列方法创建FileWriter对象: FileWriter (File file) 用指定File对象创建FileWriter流,向File对象指定的文件输出数据。 该方法始终创建一个新文件。如果已存在同名文件,原文件被 覆盖。File对象指定的是一个文件夹或者文件路径错误,则会 产生FileNotFoundException异常。 FileWriter dataout = new FileWriter (new File( FileWri

18、ter (File file, boolean append) 参数append为false时,与FileWriter (File file)相同。参数 append为true时,表示向文件添加数据。FileWriter (FileDescriptor fdObj) 用FileDescriptor对象创建FileWriter流。 FileWriter dataout = new FileWriter (); FileWriter (String name) 用指定文件名创建FileWriter流,向文件输出数据,与FileWriter (File file)方法类似。 FileWriter d

19、ataout = new FileWriter ( FileWriter (String name, boolean append) 参数append为false时,与FileWriter (String name)相同。参 数append为true时,表示向文件添加数据。4、FileWriter对象操作FileWriter对象常用操作如下:关闭FileWriter流。向文件写入一个字符,n为字符的Unicode码。 write(char b):将字符数组b 写入文件。 write(char b, int bindex,int count):将字符数组b中下标从bindex开始 的count个

20、元素写入文件。 write(String b):将字符串b写入文件。 write(String b, int index,int count):将字符串b中序号从index开始的 count个字符写入文件。 append(char c):将字符c写入文件。 append(CharSequence b):将字符序列b写入文件。String类型为一个 典型的实现了CharSequence接口的类。 append(CharSequence b, int start,int end):将字符串序列b中下标 start开始到end的字符写入文件。 缓冲流前面前面介绍的字节流和字符流均未使用内存缓冲区,也

21、就是说,每 次读写一个字节或字符都是直接访问文件,这会导致大量数据读写时 频繁访问文件。缓冲输入输出流则是在内存中创建一个缓冲区来缓存 数据。程序只是从缓冲区读取数据,不直接访问文件。输入数据时, 缓冲流在缓冲区为空时自动从文件读取数据填满缓冲区。输出数据时, 数据首先写入缓冲区,缓冲区填满或执行flush方法时,缓冲流将缓 冲的数据写入文件。 Java提供了4种缓冲流,BufferedInputStream和 Java 4 BufferedInputStream BufferedOutputStream用于缓冲字节流,BufferedReader和 BufferedWriter用于缓冲字符流

22、。 可以创建默认大小缓冲区的缓冲流。 BufferedReader in = new BufferedReader(new FileReader( 也可创建指定大小缓冲区的缓冲流。 BufferedWriter out = new BufferedWriter(new FileWriter(),100); 格式化输入输出字节流和字符流只是按字节或字符读写文件。 如果要从读取特定类型的数据,例如读一个 整数,则需要使用Scanner对象。在将特 定类型的数据写入文件,则可使用 PrintWriter或PrintStream对象完成输出。 格式化输入Scanner对象可以按基本数据类型从字符串 或

23、各种输入流中解析数据。1、创建Scanner对象Scanner类的构造方法有两种基本格式: Scanner(数据源) Scanner(数据源,字符集) 创建Scanner对象的数据源可以是一个字符串、File对象、 InputStream对象、InputStream子类对象、Readable对象 或ReadableByteChannel对象。 Scanner in1=new Scanner(1 one 2 two Scanner in2=new Scanner(new File( Scanner in3=new Scanner(new FileReader( Scanner in4=new S

24、canner(new FileReader( Scanner in5=new Scanner(new FileInputStream( Scanner in6=new Scanner(new BufferedReader(new FileReader();在创建访问各种流的Scanner对象时,可用一个字符 串指明数据源采用的字符集,默认为本地字符集。 从文件读出字节时,将其转换为指定字符集的字符。 例如:),GB2312 /指定 采用的字符集 Scanner对象在不使用之后,应调用close方法将其关 闭。 in1close();2、从数据源解析数据Scanner对象用一系列的next方法从

25、数据源解析各种类型的数据: next():从数据源读取一个字符串。 nextLine():将当前位置到换行符号之前的全部内容作为一个 字符串返回。 nextBoolean() nextBoolean():从数据源读取一个boolean类型值。 boolean nextByte():从数据源读取一个byte类型值。 nextDouble():从数据源读取一个double类型值。 nextFloat():从数据源读取一个float类型值。 nextInt():从数据源读取一个int类型。 nextLong():从数据源读取一个long类型值。 nextShort():从数据源读取一个short类型

26、值。在使用各种next方法读取数据时,可能会发生下列三 种异常: InputMismatchException:如果下一个标记不 能转换为指定类型的数据,或者超出了数据范围。 NoSuchElementException:数据源中已无数据 可读。 IllegalStateException:Scanner对象已被关闭。 这3种异常属于不检查异常,可以不捕捉处理。 格式化输出PrintStream和PrintWriter类提供了格式化输出方法,可用print、 printf、println和format方法输出各种基本数据类型的数据,也可 输出对象。printf和format方法用法相同,均可使用格式字符串来 控制数据的输出格式。 提示:关于格式字符串、print、printf和println方法的使用请参考 中的相关内容。 println方法会在输出数据后添加一个换行符号。print、printf和 format方法不自动添加换行符号,可在输出数据中包含换行符号来 实现换行。 PrintStream对象将数据转换为字节流输出,PrintWriter对象将数 据转换为字符流输出。字符和字符串按照默认的本地字符集转换为字 节。可以在创建PrintStream或

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1