Java中的IO流,入门

在保存数据时,可以选择二进制格式或文本格式。

例如:整数1234存储成二进制数时,它被写为由字节 00 00 04 D2构成的序列,(十六进制表示法),而存储成文本格式,它被存为了字符串“1234”。

虽然,二进制格式的 I/O 告诉且高效,但是不宜人来阅读!

关于文本格式的 I/O 流,我们需要考虑 字符编码(character encoding),UTF-16编码方式,字符串“1234”编码为00 31 00 32……(十六进制)。但是,

ISO 8859-1这种在美国和西欧最常用。最常用的:

InputSreamReader in = new InputStreamReader( System.in )

PrintWriter out = new PrintWriter( " test.txt " )


如何读入文本输入

二进制格式写出数据,需要使用 DataOutputStream、DataInputStream

以文本格式写出护具,需要使用PrintWriter

JavaSE 5.0之前,唯一方式通过BufferedReader类,采用 一个 readLine 方法,读入一行文本。

BufferedReader in = new BufferedReader( new InputStreamReader(new FileinputSream(“test.txt”),“UTF-8”) )

readLine 在没有输入是返回 null,因此,典型的输入:

while( (line=in.readLine() )!= null  ){ do something;  }


ZIP文档

值以压缩格式存储了一个或多个文件,每个ZIP文档都有一个头,包含诸如每个文件名字和所使用的压缩方法等信息。

例如:

ZipInputStream zin = new ZipInputStream( new FileInputStream( zipname ) );

ZipEntry entry;

while( (entry = zip.getNextEntry()) != null ){

analyze entry

read the contents of zin

zin.closEntry();

}

zin.close();


而当我们

Scanner in = new Scanner( zin ) ;

while( in.hasNextLine() )

do something with in.nextLine()

注意:读入zip项后,不要关闭zip输入流,也不要将其传递给可能关闭它的方法,否则,你就不能再读入后续的项了。

FileOutputStream fout = new FileOutputStream( " test.zip " );

ZipOutputStream zout = new ZipOutputStream( fout );

for all files{

ZipEntry ze = new ZipEntry( filename );

zout.putNextEntry( ze );

send data to zout 

zout.closeEntry();

}

zout.close();


java.util.zip.ZipInputStream :

ZipInputStream( InputStream in )    创建一个 流。

ZipEntry getNextEntry()    为下一项返回ZipEntry对象,或者在没有更多的项时,返回null。

void closeEntry() 关闭这个ZIP文件中当前打开的项,之后可以通过使用getNextEntry()读入下一项。

java.util.zip.ZipOutputStream

ZipOutputStream( OutputStream out )  创建一个降压所数据写到指定的 OutputStream 的ZipOutputStream

void putNextEntry( ZipEntry ze ) 将给定的ZipEntry 中的信息写出到流中,然后通过write()写出到这个流中

closeEntry()

setLevel( Int level )

java.util.zip.ZipEntry

long getCrc()  返回这个ZipEntry的Crc32校验和的值

String getName() 返回这一项的名字

long getSize() 返回这一项未压缩的尺寸,或者在未压缩的尺寸不可知的情况下返回-1.

boolean isDirectory() 是否为目录 void setMethod ( int method )[ 压缩方法 ]

void setSize() 设置这一项的尺寸,只有压缩方法为stored时才必须。

void setCrc() 

java.util.zip.ZipFile

ZipFile ( String name )

ZipFile( FIle file ) 创建一个ZipFile,用于从给定的字符串或File对象中读入数据。

Enumeration entries()

ZipEntry  getEntry() 返回给定名字所对应的项,或者没有对应返回null

InputStream getInputStream( ZipEntry ze ) 返回用于给定项的InputStream

String getName() 返回这个ZIP文件的路径













  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值