1. java中的包有那些
以下是常用包:
1、java.lang包:java的核心类库,包含了运行java程序必不可少的系统类,如基本数据类型、基本数学函数、字符串处理、线程、异常处理类等,系统缺省加载这个包
2、java.io包:java语言的标准输入/输出类库,如基本输入/输出流、文件输入/输出、过滤输入/输出流等等
3、java.util包:包含如处理时间的date类,处理变成数组的Vector类,以及stack和HashTable类
4、java.util.zip包:实现文件压缩功能
5、java.lang.reflect包:提供用于反射对象的工具
6、java.awt.image包:处理和操纵来自于网上的图片的java工具类库
7、java.wat.peer包:很少在程序中直接用到,使得同一个java程序在不同的软硬件平台上运行
8、java.applet包
9、java.net包:实现网络功能的类库有Socket类、ServerSocket类
10、java.corba包和java.corba.orb包
11、java.awt.datatransfer包:处理数据传输的工具类,包括剪贴板,字符串发送器等
12、java.awt包:构建图形用户界面(GUI)的类库,低级绘图操作Graphics类,图形界面组件和布局管理如 Checkbox类、Container类、LayoutManger接口等,以及界面用户交互控制和事件响应,如Event类
13、java.awt.event包:GUI事件处理包。
14、java.sql包:实现JDBC的类库
2. Java的IO的类有哪些都有什么用
java的IO类操作主要包括如下几类
1、File类的使用。
2、字节操作流:OutputStream、InputStream
3、字符操作流:Reader、Writer
4、对象序列化:serializable
(1)File类
从定义看,File类是Object的直接子类,同时它继承了Comparable接口可以进行数组的排序。
File类的操作包括文件的创建、删除、重命名、得到路径、创建时间等,以下是文件操作常用的函数。
(2)字节操作流(btyle)
(1)字节输出流OutputStream
(2)字节输入流InputStream
(3)字符输出流Write
(4)字符输入流Reader
(5)字节流和字符流的区别(重点)
3. java io包中的类体现了什么设计思想
说设计思想,当然是面向对象思想啦。
说设计模式的话,用到了装饰模式和适配器模式,下面简要说明,
1、装饰者模式:在由 InputStream,OutputStream,Reader和Writer代表的等级结构内部,有一些流处理器可以对另一些流处理器起到装饰作用,形成新的,具有改善了的功能的流处理器。装饰者模式是Java I/O库的整体设计模式。这样的一个原则是符合装饰者模式的。
2、适配器模式:在由InputStream,OutputStream,Reader和Writer代表的等级结构内部,有一些流处理器是对其它类型的流源的适配。这就是适配器模式的应用。
4. java的io包如何系统的学习
先从他们的父接口学起,inputStream跟outputStream这两个接口学起,了解他们的子类 有的共同方法,最后就是多实践了。你可以写写小软件玩玩,比如写一个文件分割器。
5. java的IO类那么多,应该掌握哪几个
IO包中绝大部分的类都是由以下四个类直接或间接继承来的
InputStream OutputStream Reader 还有Writer
其中InputStream和OutputStream代表输入流和输出流,也就是字节流的输入和输出,他们定义了如何读取和写入字节和字节数组,所以说基本上所有XXXInputStream和XXXOutputStream都是针对字节进行操作的
比如说FileInputStream,它可以以流的形式读取一个文件,或者StringBufferInputStream,它以流的形式读取一个字符串,所有的子类都是不同领域的应用罢了
而Reader和Writer是在输入输出流之上的更高级的字符级别的输入输出,称为读取器和写入器,他们直接读取和写入字符(字符串)数据而不是字节(字节数组),比如你有一个文本文件就可以使用FileReader这个类来读取里面的文本,还有PrintWriter是用来输出的写入器,System.out的那个out返回的就是一个PrintWirter的内部实现PrintOutputStream
其实具体类用的比较多的就是File开头的String开头的和Object开头的,Object开头的是用来序列化读取的
IO包并不难,别被吓到了,掌握好他们之间的继承关系,就可以很容易了解
6. 同学们知道Java中的IO是指什么
一般指文件相关的操作。在Java中,使用文件流进行编码时,需要引入对应的JAR包,而其中最zhuan主要的类,像File、FileInputStream、FileOutputStream等等shu,大多都封装在IO这个包里面。所以Java中,说到IO相关的操作,一般情况下都会认为是文件相关的操作。
7. 怎样才能学好java的IO包呢
我开始学java时,java.io的介绍是在《java编程思想》里看的。说实话,当时完全看不明白——“java.io的是用‘decorator模式’来构建的”——刚学java时,天知道啥玩意叫decorator……
不过要明白java.io,确实需要理解decorator设计模式,下面详细介绍下。
所谓decorator,装饰,其实可以说是一种设计的技巧,说白了没什么难的,别看很多网上资料说的天花乱坠的(非常讨厌有些文章总是把简单的问题描述得跟两头猪的kiss问题一样复杂……)。
decorator的结构如下:
MyInterface
|
_______|_______
| |
Myclass Decorator
____|_____
| |
DecoratorA DecoratorB
decorator的目的是在不改变任何原有的类的基础下,添加新的功能(你可以理解为书上说的灵活性)。其中Myclass是你要扩展的类,DecoratorA跟DecoratorB封装了你要扩展的功能,并保存有一个MyInterface的引用。
考虑以下代码:
public static void main(Strings[] arg){
myInterface a = new myClass();
a.print();
}
myInterface 是myClass的接口,只声明了一个方法print(),myClass实现了该方法:
public void print(){
System.out.println("hello");
}
那么假如我们要在不改变原来的myClass的基础上,变成输出“hello world!”,要怎么做呢?
当然我们可以考虑直接写个myClass的子类,helloClass之类,但是要是要求根据环境不同,输出"hello world!",my hello world","my Hello"之类的组合呢?
用继承的方式将不得不写一堆类似的子类来。
decorator,装饰模式的解决方法是,只实现基本的功能,把附加的功能抽出来放一边。
例如以下代码:
class DecoratorA implements Decorator{
MyInterface myObject;
DecoratorA(myInterface myObject){
this.myObject = myObject;
}
public void print(){
myObject.print();
System.out.print("world!");
}
}
class DecoratorB implements Decorator{
MyInterface myObject;
DecoratorA(myInterface myObject){
this.myObject = myObject;
}
public void print(){
System.out.print("my");
myObject.print();
}
}
DecoratorA和DecoratorB的功能分别是打印出world跟my。这时main函数要打印出my hello world可简单变为:
public static void main(Strings[] arg){
MyInterface a =new DecoratorA(new DecoratorB(new MyClass());
a.print();
}
简单吧?简单的说,就是:
print(){
print("xxx");//可替换成你要添加的任何处理;
myObject.print();//调用基础类的函数;
xxxx; //后续处理
}
Decorator的介绍就到此为止,接下来讲java.io.
看到
MyInterface a =new DecoratorA(new DecoratorB(new MyClass());
是不是觉得眼熟咧?这跟
BufferedInputStream bis = new BufferedInputStream(new DataInpuStream(new FileInputStream("xxx.txt")));
是不是很像?
(画外音加一个臭鸡蛋扔上来:因为java.io就是用decorator模式组织的,当然像啦……)
java.io分Stream跟reader、writer两大类,这里只详细介绍Stream,并最后两者间的关系。Stream又分inputStream、OutputStream,两者基本是对称的,这里也只介绍InputStream.
java.io.InputStream
|
_______________________|________________________
| |
ByteArrayInputStream FilterInputStream
StringBufferInputStream _____________________|____________________________
FileInputStream | | | |
PipedInputStream DataInputStream BufferedInputStream LineNumInpuStream XXX
(注:xxx是PushbackInputStream,上面的图放不下)
这个图跟最初介绍的hello world的图很像吧?呵呵。
基础的流只有左边4个,这些流代表了数据的来源,所有的流都必须从这四个中之一开始。(注,还有一个RandomAccessFile、File,这两个不在本文介绍范围)。
然后当我们需要什么添加功能,就从右边中选择一个装饰。例如,我们需要缓存功能,那么需要bufferedInputStream装饰:
BufferdInputStream is = new BufferedInputStream(new FileInputStream("xxx.txt"));
假如再要DataInputStream的功能,只要在加一层:
DataInputStream dis = new DataInputStream(new BufferdInputStream(new FileInputStream));
(厄,我不甚明白这个类添加的功能是做什么用的,资料说是增加读取java原生数据的功能,不甚明白,有清楚的来补充一下,pipeInputStream跟sequenceInputStream也没用过,欢迎补充说明)
这里你可以想象成,在基本的FileInputStream.readxxx()方法在BufferedInputStream的readxxx()方法调用,并添加相应的处理。