`
paninxb
  • 浏览: 23477 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

IO总结(一)

    博客分类:
  • JAVA
阅读更多

 

IO 总结(一)

——FileReader FileWriterInputStreamReader OutputStreamWriterUTF-8 编码的文本

 

一、类的层次结构

FileReader

java.lang.Object

  java.io.Reader

      java.io.InputStreamReader

          java.io.FileReader

 

InputStreamReader

java.lang.Object

  java.io.Reader

      java.io.InputStreamReader

 

FileWriter

java.lang.Object

  java.io.Writer

      java.io.OutputStreamWriter

          java.io.FileWriter

 

OutputStreamWriter

java.lang.Object

  java.io.Writer

      java.io.OutputStreamWriter

 

FileReader FileWriter 分别是InputStreamReaderOutputStreamWriter 的直接子类,InputStreamReaderOutputStreamWriter 是字符流通向字节流的桥梁,可以显示的指定字符编码,因为转码是发生在字节流和字符流的临界处的(我是这么理解的^_^ );而FileReaderFileWriter 是处理字符文件的便捷类,使用的是默认的字符编码。

 

二、读UTF-8 字符编码的文件

1 、使用FileReader

public static String readUsingFileReader(String fileName,

String encoding) throws IOException{

         StringBuffer sb = new StringBuffer();

         BufferedReader in = new BufferedReader(

                   new FileReader(fileName));

         String s ;

         while ((s=in.readLine())!= null ){

              s = new String((s+ "\n" ).getBytes(),encoding);

              sb.append(s);

         }

         in.close();

         return sb.toString();

     }

2 、使用InputStreamReader

public static String readUsingInputStreamReader(String fileName,String encoding)

throws IOException{

         StringBuffer sb = new StringBuffer();

         BufferedReader in = new BufferedReader(

                   new InputStreamReader( new FileInputStream(fileName),encoding));

         String s ;

         while ((s=in.readLine())!= null ){

              sb.append(s);

              sb.append( "\n" );

         }

         in.close();

         return sb.toString();

     }

 

使用 FileReader 类我们需要通过 new String((s+ "\n" ).getBytes(),encoding) 进行转码,按我的理解应该是可以的,但我发现还是会出现一些汉字无法解析出来,原因我暂时还没找出来。使用 InputStreamReader 类时我们指定好编码方式能很好的解析。

 

写文件和读文件差不多。

1 、使用FileWriter

public static void writeUsingFileWriter(String fileName,String text,

              String encoding) throws IOException{

         PrintWriter out = new PrintWriter(

                   new FileWriter(fileName));

         text = new String(text.getBytes(encoding));

         out.print(text);

         out.close();

     }

2 、使用OutputStreamWriter

     public static void writeUsingOutputStreamWriter(String

fileName,String text,String encoding) throws IOException{

         PrintWriter out = new PrintWriter(

new OutputStreamWriter(

new FileOutputStream(fileName),encoding));

         out.print(text);

         out.close();

     }

 

同样的问题出现在这2 个类上。迷茫中


其实上述的问题在我以前用SmartUpload 时就出现过,一直没在意,commonsio 包和fileupload 包很好的解决了这个问题,希望可以从中得到启示,继续学习中……

 

以上是我对IO的一些简单认识,不对不妥之处请大家指出^^

分享到:
评论

相关推荐

    IO总结处理

    根据给定的信息,本文将对Java IO的基本概念及其在文件操作中的应用进行详细的解析与总结。主要内容包括:创建文件、删除文件、创建目录、列出指定目录下的所有文件及子目录等基本操作。 ### 一、Java IO概述 Java...

    java中的IO操作总结(四)

    java中的IO操作总结(四) 前面已经把java io的主要操作讲完了 这一节我们来说说关于java io的其他内容 Serializable序列化 实例1:对象的序列化 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23...

    Linux文件IO跟标准IO总结

    **标准IO**,也称为C库IO,是C语言标准库提供的一种IO抽象。它包括`fopen()`, `fread()`, `fwrite()`, `fclose()`等函数,为开发者提供了一种更高级别的接口。标准IO处理缓冲,可以提高性能,因为它会批量处理数据,...

    Java_IO完全总结

    Java IO系统主要包括两个包:`java.io`和`java.nio`(New IO),其中`java.io`提供了一系列基于流的I/O操作接口与实现类,而`java.nio`则提供了更高效的数据访问方式,如通道和缓冲区等。 Java IO系统的设计原则之...

    Java学习之IO总结及mina和netty

    这篇博客“Java学习之IO总结及mina和netty”探讨了Java IO的基础知识,并深入到两个高级网络通信框架——Mina和Netty。Mina和Netty都是基于NIO(非阻塞IO)的高性能网络应用框架,它们简化了复杂网络编程的实现。 *...

    IO知识总结

    标题中的“IO知识总结”指的是在计算机编程领域中关于输入/输出(Input/Output,简称IO)的概念、机制和常用库的概述。IO是程序与外部世界交互的关键部分,包括读取数据(输入)和写入数据(输出)。在Java等编程语言...

    文件IO编程总结

    本文将围绕“文件IO编程”这一主题,详细讲解相关知识点,帮助初学者快速掌握文件IO的基本概念、常用方法以及实践技巧。 首先,我们需要了解文件在操作系统中的基本概念。文件是数据的持久化存储形式,它包含了一...

    Java IO流 总结

    Java IO流总结 Java IO流是Java语言中最基本和最重要的输入/输出机制,负责将数据从外部世界输入到Java应用程序中或将数据从Java应用程序输出到外部世界。IO流可以分为两大类:字节流和字符流。 1. 节点流:离数据...

    Java IO流总结

    Java IO流是Java平台中处理输入输出操作的核心组件,...理解并熟练运用Java IO流是成为一名合格的Java开发者的必备技能之一。通过深入学习和实践,我们可以根据实际需求选择合适的流类型,有效地管理数据的传输和处理。

    JavaIO总结.pdf

    Java IO总结 Java IO是Java中对文件的操作方式,以流的方式进行。流是Java内存中的一组有序数据序列。Java将数据从源(文件、内存、键盘、网络)读入到内存中,形成了流,然后将这些流还可以写到另外的目的地(文件...

    《JAVA_IO流学习总结》

    总结来说,Java IO流是一个庞大的体系,覆盖了从基础的文件操作到复杂的网络通信,理解并熟练掌握这一部分将极大地提升Java开发者的技能。通过学习和实践,开发者可以灵活地处理各种数据输入输出场景,为应用程序...

    java_IO完全总结

    Java IO完全总结的知识点: 一、历史背景: 1. IO系统设计的困难性:对于编程语言设计人员来说,设计一个功能完善的输入输出系统是非常有挑战性的。需要考虑各种不同的因素,如文件、控制台、网络、内存等的读取方式...

    IO流的实现 自我总结

    一,IO流的实现方式 1:用的是装饰模式,装饰模式有四个角色,分别是通用接口、本原、抽象装饰、 具体装饰,因为是将本原聚合到了装饰中,所以可以将本原或装饰通过构造子注入到 另一个装饰,多个装饰可以随意...

    堪称一绝的“IO口扫键”法

    "堪称一绝的“IO口扫键”法"是一种高效利用有限的IO资源来实现大量按键扫描的技术。在电子工程和嵌入式系统设计中,IO口是非常宝贵的资源,尤其是在资源紧张的微控制器应用中。该方法通过巧妙的硬件布局和软件算法,...

    java中的IO操作总结(一)

    java中的IO操作总结(一) 所谓IO,也就是Input与Output的缩写。在java中,IO涉及的范围比较大,这里主要讨论针对文件内容的读写 其他知识点将放置后续章节(我想,文章太长了,谁都没耐心翻到最后) 对于文件内容...

    JavaIO流详细总结

    下面是对Java IO流的详细总结: 1. 流的概念: 流是一种抽象的数据传输方式,可以将数据从一个地方传输到另一个地方。Java中的流分为输入流和输出流,分别用于读取和写入数据。流按照处理数据的不同类型,又可以...

    一个IO的传奇一生

    ### 一个IO的传奇一生——从创建到消亡的全过程解析 #### 前言 在探讨一个IO从诞生到消亡的过程时,《一个IO的传奇一生》这一作品以其独特的视角,为我们揭示了一个看似简单的输入输出操作背后所蕴含的复杂技术和...

    单片机低功耗IO设置总结.

    ### 单片机低功耗IO设置总结 #### 一、引言 在现代电子设备设计中,单片机作为核心部件被广泛应用。随着技术的发展,越来越多的应用场景对设备的能耗提出了更高的要求,特别是对于那些需要长时间运行或者依赖电池...

Global site tag (gtag.js) - Google Analytics