JAVA IO系列----FileInputStream和FileOutputStream类,Reader和Writer类

·FileInputStream和FileOutputStream类分别用来创建磁盘文件的输入流和输出流对象,通过它们的构造函数来指定文件路径和文件名。

·创建FileInputStream实例对象时,指定的文件应当是存在和可读的。创建FileOutputStream实例对象时,如果指定的文件已经存在,这个文件中的原来内容将被覆盖清除。

·对同一个磁盘文件创建FileInputStream对象的两种方式:

   1.FileInputStream inOne = new FileInputStream("hello.test");//hello.test不能是目录名

   2.File f = new File("hello.test");

      FileInputStream inOne = new FileInputStream(f);

·创建FileOutputStream实例对象时,可以指定还不存在的文件名,不能指定一个已被其他程序打开了的文件。

·FileInputStream和FileOutputStream类是处理字节的类,字符则要转换成字节才能处理。

 

·思考:要将A文件的内容写入B文件,在程序代码中,是用输出类对象,还是用输入类对象来连接A文件并完成对A文件的操作呢?

 Answer:输入和输出都是相对应用程序而言,而不是相对文件而言,所以要创建输入类来读取A文件中的内容,创建输出类来写内容到B文件。

 

·编程举例:用FileOutputStream类向文件中写入一个串字符,然后用FileInputStream读出写入的内容。

 

 

 

 

 

·Reader和Writer类是所有字符流类的抽象基类,用于简化对字符串的输入输出编程,即用于读写文本数据。

·二进制文件和文本文件的区别:文本文件是基于字符编码的文件,基本上是定长编码的。那些没有规定格式的,由可理解的的ASCII以及其他编码文字组成的文件都是文本文件,如C源程序文件,HTML超文本,XML。二进制文件是基于值编码的文件,二进制文件可看成是变长编码的,读文件时,会原封不动的读出文件的全部內容,写的時候,也是把內存缓冲区的內容原封不动的写到文件中。   

·编程举例:用FileWriter类向文件中写入一个串字符,然后用FileReader读出写入的内容。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
InputStream,OutputStream,ReaderWriter都是Java IO的重要,它们的功能如下: 1. InputStream是一个抽象,它提供了读取字节流的方法,如read()和read(byte[] b)等。它的子FileInputStreamByteArrayInputStream可以用来读取不同来源的字节流。 2. OutputStream也是一个抽象,它提供了写入字节流的方法,如write(byte[] b)和flush()等。它的子FileOutputStreamByteArrayOutputStream可以用来写入不同目标的字节流。 3. Reader是一个抽象,它提供了读取字符流的方法,如read()和read(char[] cbuf)等。它的子如FileReaderStringReader可以用来读取不同来源的字符流。 4. Writer也是一个抽象,它提供了写入字符流的方法,如write(String str)和flush()等。它的子FileWriterStringWriter可以用来写入不同目标的字符流。 它们的异同点如下: 相同点: 1. 都是Java IO。 2. 都是用于读写数据的。 3. 都提供了不同的子来处理不同的数据来源和目标。 4. 都有相似的方法,如read()和write()。 不同点: 1. InputStream和OutputStream是字节流,而ReaderWriter是字符流。 2. InputStream和OutputStream是读写字节数据,而ReaderWriter是读写字符数据。 3. InputStream和Reader是用于读取数据的,而OutputStream和Writer是用于写入数据的。 4. InputStream和Reader提供了字节和字符转换的方法,如InputStreamReader和BufferedReader,而OutputStream和Writer没有提供似的方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值