JAVA IO

1.输入和输出:

  输入:inputStream,从多种起源地读取数据输入到内存中;这些起源地包括如下:

1)字节数组

2)String对象

3)文件

4)管道

5)socket

衍生类:

ByteArrayInputStream字节缓冲区读取;

DataInputStream基本类型读取;

StringBufferInputStream字符串缓冲流读取;

FileInputStream文件缓冲流;

PipedInputStream管道缓冲流;

缓冲流对于inputStream来说,读取效率要高,但是,要注意在使用完毕之后,关闭缓冲流,释放掉相应的缓冲内存。

输出:outputStream,将内存数据写入到指定的目的地;

ByteArrayOutputStream    字节缓冲区写入;

DataOutputStream基本类型数据写入;支持多种基本类型的write

FileOutputStream文件缓冲写入;

PipedOutputStream管道缓冲写入;

RandomAccessFile:

用来访问那些保存数据记录的文件的,可以用seek()进行访问,且进行读写;还可以实现文件的大小,跳过指定长度等;

不是inputStream和outputStream的衍生类;

File类:既代表一个特定文件名字,又代表目录内一系列文件的名字;

Reader/Writer与InputStream/OutputStream的关系:

1)并不是Reader/Writer替换了InputStream/OutputStream,而是保持向后兼容;

2)InputStream/OutputStream是java1.0提供的;Reader/Writer是java1.1提供的;

3)InputStream只支持8位字节流,Reader/Writer支持16位字节流,(java内含的char是16位的Unicode);

4)未做改动的几个stream:

DataOutputStream 作为一种按数据格式保存和获取数据的流

File

RandomAccessFile

SequenceInputStream

5)流转换示例:

DataInputStream  in=new DataInputStream( new BufferedInputStream( new  FileInputStream("data.txt")));

BufferedReader inbr=new BufferedReader( new InputStreamReader(in));

in.readDouble();

inbr.readLine();

String s2=new String("sssss");

StringReader  s2sr=new StringReader(s2);

文件解压缩:

java1.1提供的压缩类功能是从InputStream/OutputStream拓展出来的;

CheckedInputStream   GetCheckSum()   附加验证码的解压操作

CheckedOutputStream GetCheckSum() 附加验证码的压缩操作

DeflaterOutputStream 用于压缩类的基础类:

ZipOutputStream DeflaterOutputStream 的拓展类,将数据压缩成Zip文件格式;

GZIPOutputStream DeflaterOutputStream 的拓展类,将数据压缩成GZIP文件格式;

DeflaterInputStream用于解压类的基础类:

ZipInputStream DeflaterInputStream的拓展类,解压用Zip文件格式保存的数据;

GZIPInputStream DeflaterInputStream的拓展类,解压用GZIP文件格式保存的数据;

注意:在使用GZIP进行解压缩时,如果要支持中文,则将编码方式设置为GBK;

ASCII  GBK  unicode  utf-8(utf-16)的关系:

都是字符编码,字符只有被编码后才可以被计算机识别,而转换后的就称之为计算机的内码,早期的计算机使用7位的ASCII编码,为了处理汉字,程序员设计了用于简体中文的GB2312和用于繁体中文的big5。

GBK编码长度是英文1一个字节,中文两个字节,utf-8是因为一个字节,汉字三个字节,它是由uncode发展而来的,unicode支持全世界的文字编码,每个都是两个字节;utf-8针对英文编码效率更高;

     UTF-8就是以8位为单元对UCS进行编码;UTF-16以16位为单元对UCS进行编码;uncode只是一个编码方案,而utf编码则要用于实际传输;GBK也要用于实际传输;

    ASCII、GB2312、GBK到GB18030的编码方法是向下兼容的。而Unicode只与ASCII兼容(更准确地说,是与ISO-8859-1兼容),与GB码不兼容 如果GBK要转UTF-8必须先转uncode码,再转utf-8就OK了.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Java IO(Input/Output)是Java编程语言中用于处理输入和输出的基础库。它提供了一种方便的方式来读取和写入数据,从而与外部世界进行交互。 Java IO库包含多个类和接口,用于在不同的场景下处理输入和输出。这些类和接口可以分为字节(Byte Stream)和字符(Character Stream)两种类型。 字节主要用于处理二进制数据,而字符则用于处理文本数据。 常用的字节类有: - InputStreamOutputStream:用于读取和写入字节数据。 - FileInputStream和FileOutputStream:用于读取和写入文件。 - BufferedInputStream和BufferedOutputStream:提供了缓冲功能,以提高读写的效率。 常用的字符类有: - Reader和Writer:用于读取和写入字符数据。 - FileReader和FileWriter:用于读取和写入文本文件。 - BufferedReader和BufferedWriter:提供了缓冲功能,以提高读写的效率。 除了字节和字符之外,Java IO还提供了一些其他的类和接口,用于处理特定类型的输入和输出。例如: - DataInputStream和DataOutputStream:用于读写基本数据类型及字符串。 - ObjectInputStream和ObjectOutputStream:用于读写Java对象。 - PrintWriter:用于格式化输出。 在使用Java IO时,通常需要使用try-catch语句来捕获可能抛出的异常,例如IOException。 总结起来,Java IOJava编程语言中用于处理输入和输出的基础库,提供了字节和字符两种类型的处理方式,并且还包含其他一些类和接口,用于处理特定类型的输入和输出。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值