`

java.io包

    博客分类:
  • java
阅读更多
 
java.io包难吗?2008-04-03 16:58java的io包很难吗?有人会说很难,一个拥有六七十个类的包,每个类里面又有大量的方法,确实是一个复杂的包,但是结构还算是非常清晰的,我们先

看看以下几个类,并把主要作用说一下:

1 OutputStream

2 InputStream

3 Reader

4 Writer

5 File

这几个类我们不看API都应该知道是什么意思,哪怕你没有过四级。File,当然是关于文件的类,文件的地址,文件的名称,文件的父目录,文件的子目录

……自己到api里面看看吧,反正一般的文件属性File类都提供的查看和操作的方法。

OutputStream,InputStream:输入输出流,很多人都讨厌java的io包绝大多数是因为这两个东西,开始我也挺讨厌的,输入输出经常搞混。特别是原来从

c学起的人更是搞不清,我开始认为输出吗,当然就是文件输出了,也就是读文件;输入就是向文件中输入,也就是写文件!大错特错,恰恰相反,正确的

是输入代表读文件,输出代表写文件。看样子java的前辈们都是逆向思维!不是的,这里是我们没有理解流的概念,流,像水流,我们的程序像一个水站

,没水了抽点水,有水了放点水,而文件就是长江黄河。我们从长江中抽了水(输入流),把水中加点盐搁点酒(操作),然后再把水(输出流)放到黄

河中去。好了,没明白的现在应该明白了,java所谓的流是相对于水站(程序),进水站(程序)的流叫做输入流,出水站(程序)的流叫做输出流,明

明白白,非常清晰吧!大家可能会问那么长江和黄河是什么,长江和黄河当然是有水或可以存水还或者创造水的地方:键盘,文件,网络端口,显示屏…

…至于那些可以做为输入流的始点还是输出流的终点(当然输入流的终点和输出流的始点都是水站)就看大家自己来判断,如果什么时候输出流的终点是

键盘的话要告诉我哦!!

Writer,Reader:写者和读者,有了流的概念,这两个家伙我们就比较好处理了,他们是一个养鱼的,一个抓鱼的 ,不过他们的本领要大一些,养鱼抓鱼

都得要水啊!鱼在水里,所以他们首先的任务是找到水 。他们可以从其他地方搞到水后来水站,Reader的儿子InputStreamReader可以从长江中(输入流

)中搞到水来,当然可以了!站在水站中不用动,长江水就来了。Reader的孙子FileReader更牛一些。它可以从淮河里搞到水,甚至你给他一个淮河的地

址,他就屁癫屁癫的就跑去了搞水了:FileReader fr=new FileReader("E://text.txt")搞到水后他们就开始放鱼的放鱼,抓鱼的抓鱼,但是他们的子

孙却各有神通,抓鱼的大小,方式各不相同。

例子:

A  FileReader reader = new FileReader("e://text.txt"); 
  BufferedReader br = new BufferedReader(reader);     
  String s1 =new String(); 
  while((s1 = br.readLine()) != null){
    list.add(s1);
  }
  br.close(); 
  reader.close(); 
  return doList(list);
  }catch(Exception e){
    e.printStackTrace();
    return null;
}
}

reader 找来了水,让 br抓, br可以一行一行的抓鱼,比FileReader快的多


B FileWriter fw=new FileWriter("E://text.txt")
fw.writer("hello world!")
fw 找到了养鱼的水潭,然后放了一条“hello world”的鱼

C System.out.println("helloworld!")
一个“helloworld”的输出水流流到了显示器上

D System.in.read(byte[])
一个键盘的输入流流到了程序中的byte[]中了


其他的一大堆类就是这五个类的子子孙孙,都有老祖宗的血脉,又有自己的绝活!!!

分享到:
评论

相关推荐

    java.io包讲解

    ### Java.io包详解 #### 一、概述 Java.io包是Java编程语言中非常重要的一个标准库,它提供了丰富的类和接口,支持多种输入/输出流的处理方式,包括文件I/O、网络通信等场景。Java.io包的核心设计思想是以流...

    java.io.Reader 和 java.io.InputStream 的区别

    ### Java.io.Reader与Java.io.InputStream的关键差异解析 在深入探讨`java.io.Reader`与`java.io.InputStream`的具体差异之前,我们首先需要理解这两者在Java I/O操作中的基础角色。`java.io.Reader`和`java.io....

    JBuider第八章:Java.io包.rar

    Java.io包是Java编程语言中的核心包之一,它包含了用于输入/输出操作的类和接口。这个包在Java中扮演着至关重要的角色,因为它提供了处理数据流、字符流、对象序列化、文件读写以及与操作系统交互的各种工具。在本...

    java.io包详细解说

    【Java IO包详解】 Java IO包是Java标准库中的核心组件之一,主要用于处理输入和输出操作。这个包包含了大量类和接口,它们提供了各种输入输出流、字符编码、数据转换以及文件操作等功能。Java IO的设计采用了...

    Java.nio 与Java.io比较

    Java.io包提供了系统级别的输入/输出操作,通过数据流来实现。数据流支持多种类型的数据,包括简单的字节、基本数据类型、本地化字符以及对象。在Java.io中,程序通过输入流读取来自源的数据,而通过输出流写入并...

    gnu.io.SerialPort( rxtx-2.1.7.jar)

    gnu.io.CommDriver.class gnu.io.CommPort.class gnu.io.CommPortEnumerator.class gnu.io.CommPortIdentifier.class gnu.io.CommPortOwnershipListener.class gnu.io.Configure.class gnu.io.I2C.class gnu.io.I2...

    rxtx-2.1.7.jar串口通信gnu.io包不存在问题

    在Java编程环境中,进行串口通信时,常常会遇到一个问题:缺少`gnu.io`包,导致无法正常编译或运行程序。这个问题主要出现在使用RXTX库进行串口操作的项目中。RXTX是一个开源的Java库,它提供了与硬件进行串行通信的...

    gnu.io.SerialPort( rxtx-2.1.7.jar)串口通讯

    串口通讯需要的jar包,gnu.io.SerialPort; gnu.io.CommPortIdentifier; gnu.io.SerialPort; gnu.io.SerialPortEvent; gnu.io.SerialPortEventListener; gnu.io.UnsupportedCommOperationException; Copy RXTXcomm...

    socket.io,socket.io-client下载

    5. **心跳检测**:为了检测连接是否仍然活跃,Socket.IO实现了心跳机制,通过发送心跳包来确认连接状态。 6. **房间和频道**:Socket.IO还支持将客户端分组到“房间”或“频道”,这样可以方便地向一组特定的客户端...

    java.io 包 .ppt

    使用Date 类获取系统当前时间 Calendar类的使用 使用 Random 类的对象生成随机数 Collection 类的对象的使用 HashMap 对象以键和值的关系形式存储数据

    用java写socket.io客户端所需jar包

    本篇文章将详细介绍如何在Java项目中集成并使用Socket.IO客户端,以及所需的jar包。 首先,Java中实现Socket.IO客户端的关键在于找到合适的库。目前,Java社区有多个针对Socket.IO的实现,如`java-socket.io-client...

    java io包课件

    在Java编程语言中,`java.io`包是一个非常重要的包,它包含了用于处理输入和输出操作的类和接口。这个包允许我们与外部资源(如文件、设备、网络等)进行交互,包括读取和写入数据。在本章中,我们将深入探讨`java....

    sun.io.CharToByteConverter支持类

    网上找来了相关java文件,改文件包主要用于解决类似找不到sun.io.CharToByteConverter类及相关方法情况,放到对应引用文件目录下编译即可。 PS:java文件编码格式为UTF-8,如果有其它编码格式,自己调整一下就行,我...

    gnu.io.rar_android_gnu.io _librxtxSerial_librxtxSerial._librxtxS

    标题中的“gnu.io.rar_android_gnu.io _librxtxSerial_librxtxSerial._librxtxS”提到了`GNU.IO`库,这实际上是在Android上实现的RXTX库,它是一个开源的Java库,用于串行和并行通信。RXTX库为Java程序员提供了与...

    java jdk io包类详解

    ### Java JDK IO包类详解 #### 概述 Java平台提供的`io`包为开发者提供了访问文件系统、对象序列化等功能的基本输入输出能力。它主要包括字节流、字符流及对象流(字节流的包装类)。此外,还提供了一些基本的文件...

    org.apache.commons.io 包

    `org.apache.commons.io`是这个库的核心包,包含了许多与文件、流、过滤器、读写操作相关的类和工具。 1. **文件操作**: `FileUtils` 类提供了大量的静态方法,用于执行文件和目录的操作,如复制、移动、删除、创建...

    java.io的基础应用

    在Java中,IO操作主要分为字节流和字符流两大类,分别由`java.io.InputStream`和`java.io.OutputStream`以及`java.io.Reader`和`java.io.Writer`作为基类。字节流处理的是8位的字节,而字符流处理的是16位的Unicode...

    org.apache.commons.io 的jar包大全

    Apache Commons IO 是一个Java库,它提供了一系列与输入/输出流、文件操作、I/O utility类等相关的实用工具。这个库极大地简化了处理输入和输出流的复杂性,并且提供了许多方便的功能,使得在Java项目中进行IO操作...

    socket.io.jar

    git下载的最新的socket.io,已通过ant打包成jar,https://github.com/Gottox/socket.io-java-client, 大家也可以通过这个链接自己下载

Global site tag (gtag.js) - Google Analytics