Java中的IO流,入门
2015-09-01 20:02
477 查看
在保存数据时,可以选择二进制格式或文本格式。
例如:整数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文件的路径
例如:整数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文件的路径
相关文章推荐
- DesignPattern_Java:Bridge Pattern
- 深入理解Java 8 Lambda(语言篇——lambda,方法引用,目标类型和默认方法)
- MyBatis——Java API
- Java中super.getClass方法调用
- Java并发编程:线程池的使用
- java文件io过滤器
- myeclipse 10安装svn插件
- Java带包编译运行
- 编译java程序时的一个问题
- Java核心API -- 14(Socket)
- java 第七天 排序
- Java中的native关键字浅析(Java Native Interface)
- Eclipse中如何将Java项目转换为WEB项目
- (图文)在MyEclipse(2015)中上传项目到github的步骤(很详细)
- java学习笔记之——多线程(三)
- Java判断字符串中是否包含中文
- Eclipse for J2EE服务器端口8080占用问题
- eclipse上安装sonarqube插件
- 【springmvc+mybatis项目实战】杰信商贸-3.需求分析与数据库建模
- java 通过User-Agent来判断是否是移动浏览器