最近打算开发一个小脚本,此脚本的功能需求需要用到javaIO流的部分,这个方面一直掌握的不是很好,所有就认真饿学习了一下,以下是学习心得,请指教!!
java的IO流部分主要分为两大类,一类是输入,另一类就是输出了!所以最基本输入输出类就是InputStream和OutputSream。InputSream调用read()方法实现数据的读入。当然这里是一程序为中心。站在程序这一方看IO流的
的工作方式。那么OutputStream调用write()方法实现数据输出。其他的功能类都是从这个基本的类派生出来的。也就是继承了这两个基本类。
那什么是流呢?
在理解流之前,我们先要理解“数据源”。数据源,对于对于输入流而言,就是获得数据的、产生数据的地方。对于输出流而言,就是将数据输出到什么地方。那么不难理解了,数据源就是存放数据的地方了。在计算里,我们可以存放数据的地方,首先就是file文件了。这是最主要的存放数据的地方了。其实就是内存。在内存中存放的数据可以是String字符串的类型,也可以是数组类型。这些就是数据源。我们可以从这些地方读取数据,也可以从这些地方存放数据。最大的数据源应该网络数据源了。我现在工作的公司就是在网上获得数据的。
那什么是流呢?我的理解就是程序和数据源之间通信的工具类叫做流。他封装了底层物理器件的工作过程。使我们很方便的调用这些类,就实现了数据的转移。而这些数据就像水流一样,通过这些工具类搭建的管道流到目的地。
在传输过程中数据都是以01的形式存在,并没有什么区别。但是当我们打算传输时或者解析接收到得数据时,我们会怎样的形式解析呢!最基本要分为两种方式。一个就是按字节的方式解析,另一种就是按字符的方式解析。
综上所述,根绝输入和输出的不同,以及解析时按字节和字符的要求等。我们将IO流功能类以下表的形式表示
字节 |
字符 |
InputStream |
Reader |
OutputStream |
Writer |
FileInputStream |
FileReader |
FileOutputStream |
FileWriter |
StringBufferedInputStream |
StringReader |
|
StringWriter |
ByteArrayInputStream |
CharArrayReader |
ByteArrayOutputStream |
CharArrayWriter |
根据源的不同和字节与字符的不同分别定义了这些工具了。到底使用什么类根据需求而定。
一、 File流工具类的使用:
1、文件流工具类FileInputStream、FileOutputStream、FileReader和FileWriter类。
这些类都通过构造方法指向固定的文件。read()和write() 方法可以将数据读取(写入)文件。这个数据可以是字符(字节)或者是字符数组(字节数组)。
BufferedReader in=new BufferedReader(new InputStreamReader(new FileInputStream("./sxd/form/filrtest.txt")));
也可以定义成:
BufferedReader in=new BufferedReader(new FileReader("("./sxd/form/filrtest.txt"));
String s; //用于接收字符数据
while((s=in.readline())!=null){
System.out.println(s);
}
读取文件来说用字节和字符方式并没有什么区别明显的区别。主要的区别是他们提供的方法,你更喜欢用那个。在字节
转换成字符时需要在外面包装方法InputStreamReader和OutputStreamWriter两个类作为字符和字节之间的桥梁。
二、内存中的数据的读取和写入:
这方面得流工具类,我用的比较少。
String str=new String("this is test String")
StringReader in=new StirngReader(s);
int c;// StringReader类的read()方法每次返回的是一个Int类型的值
while((c=in.read())){
System.out.println((char)c);
}
三 、包装器类的使用:
根据字节和字符的区别包装器类也分为两类,详情请看下表:
字节 |
字符 |
FilterInputStream |
FilterReader |
FilterOutputStream |
FilterWriter |
BufferedInputStream |
BufferedReader |
BufferedOutputStream |
BufferedWriter |
DataInputStream |
LineNumberReader |
PrintStream |
PrintWriter |
这些就是常用的包装类,其中FileterInputStream、FilterOutputStream、FilterReader和FilterWriter为
抽象类。起作用是起到装饰器类和工具流之间的接口作用。为什么这些装饰器类可以包装工具类关键就在这些接口类。
这里重点介绍一下PrintWriter类。
PrintWriter是文本文件的快捷方式。他内部定义缓存机制。可以直接使用这个类将数据输入到指定的文件中。
String str="this is worldof developer";
PintWriter out =new PrintWriter("./com/form/eric.txt");
out.println(s);
分享到:
相关推荐
这个“javaIO学习课件”提供了非常详尽的教程,旨在帮助初学者和有经验的开发者深入理解Java I/O系统的工作原理和应用。 首先,我们来看一下IO_1.pdf,它可能涵盖了基础的I/O流概念。在Java中,I/O流被分为字节流和...
Java IO是Java编程语言中用于输入/输出操作的重要部分,它提供了一系列的类和方法来处理数据的读写,文件的创建、删除以及流的管理等。以下是对标题和描述中涉及的知识点的详细说明: 1. **文件对象的生成**: 在...
### Java IO学习基础之读写文本文件 #### 一、Java IO概述 Java IO(Input/Output)是Java中处理输入输出操作的核心包,它主要提供了文件读写、网络通信等基本功能。Java IO操作主要基于流的概念进行,分为字节流...
import java.io.*; import java.util.*; public class FileFormatChange { /** * 1、创建输入(输出)流对象 * 2、读(写)数据 * 3、关闭输入输出流 */ public static void main(String[] args) { // ...
关于java io 的学习 文档 打开方式 直接是记事本即可
以下是对Java IO的详细学习总结: ### 1. IO流概述 IO流是Java中处理输入输出的核心概念。它们可以被视为数据传输的管道,允许数据在源和目的地之间流动。Java将所有IO操作封装为流对象,分为四大类:字节流(Byte ...
Java IO学习笔记中提到,流的操作非常容易,Java API中提供了丰富的流处理类,API也大差不差,看看文档即可上手。 在Java IO中,流的分类非常丰富,包括输入流、输出流、字节流、字符流、节点流、处理流等等。掌握...
虽然本报告主要讨论了基础的IO流,但了解NIO也是Java IO学习的重要部分。 总之,Java IO流是处理输入输出的核心工具,理解字节流与字符流的区别、流的层次结构以及基本操作方法,对于进行文件读写、网络通信等任务...
Java IO流是Java编程语言中处理输入...通过深入学习和理解IO流,开发者可以更好地掌握数据的读取、写入和传输,提升程序的效率和功能。同时,熟悉相关工具和配置文件的使用也能帮助开发者在实际项目中更加得心应手。
### Java IO流学习笔记 #### 异常处理与IO流操作 在进行Java IO流的学习过程中,异常处理是非常重要的一个方面。本节将详细介绍如何在Java中处理异常,并结合具体的IO流操作进行说明。 #### 一、异常处理 在Java...
《Java IO.chm》是一个关于Java输入/输出(IO)技术的压缩文件,其中包含了丰富的资料,适合开发者深入理解和学习Java IO系统。这篇详细的总结将围绕Java IO体系结构、核心类、流的概念、缓冲区、转换流、字符集、...
java io学习以io,nio为基础,netty为辅程序员素养:掌握面向对象的需求分析和设计理解SOLID原则,理解常用设计模式,熟练掌握重构理解面向服务的架构理解Linux操作系统的一些概念,比如内核空间,用户空间,系统调用,...
java学习笔记1(java io/nio)设计模式
Java IO流是Java平台核心特性之一,它负责在程序与外部资源之间传输数据。这个概念在Java编程中至关重要,因为它提供了处理输入(读取)和输出(写入)的机制,无论是从键盘、文件、网络还是其他数据源。在本文中,...
JAVA_IO流学习总结