Java中的数据输入输出流和ZIP压缩输入输出流

Java中的数据输⼊输出流和ZIP压缩输⼊输出流
⼀、数据输⼊/输出流
数据输⼊/输出流(DataInputStream类与DataOutputStream类)允许应⽤程序以与机器⽆关的⽅式从底层输⼊流中读取基本Java数据类型。
常⽤的构造⽅法如下:
(1)DataInputStream(InputStream in):使⽤指定的基础InputStream创建⼀个DataInputStream
(2)DataOutputStream(OutputStream out):创建⼀个新的数据输出流,将数据写⼊指定基础输出流朋友网
DataOutputStream类提供了如下⼏种写⼊字符串的⽅法:
(1)writeBytes(String s)
(2)writeChars(String s)
(3)writeUTF(String s)
DataInputStream类只提供了⼀个readUTF()⽅法返回字符串
通过如下⽰例来进⾏说明:
public class Example_01 {
public static void main(String[] args) {
// TODO ⾃动⽣成的⽅法存根
try {
FileOutputStream fs = new FileOutputStream("");
DataOutputStream ds = new DataOutputStream(fs);
ds.writeUTF("使⽤writeUTF()⽅法写⼊数据");
ds.writeChars("使⽤writeChars()⽅法写⼊数据");
ds.writeBytes("使⽤writeBytes()⽅法写⼊数据");
ds.close();
FileInputStream fis = new FileInputStream("");
DataInputStream dis = new DataInputStream(fis);
System.out.adUTF());
}catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
/*输出结果如下:
使⽤writeUTF()⽅法写⼊数据
*/
<的内容如下:
⼆、ZIP压缩输⼊/输出流
在Java中通过使⽤java.util.zip包中的ZipOutputStream与ZipInputStream类来室性⽂件的压缩/解压缩操作。ZipEntry类产⽣的对象,是⽤来代表⼀个ZIP压缩⽂件内的进⼊点;ZipInputStream类⽤来读取ZIP压缩格式的⽂件,所⽀持的包括已压缩及未压缩的进⼊点;ZipOutputStream类⽤来写出ZIP压缩格式的⽂件,⽽且所⽀持的包括已压缩及未压缩的进⼊点。
1、压缩⽂件
利⽤ZipOutputStream类对象,可将⽂件压缩为.zip⽂件,构造⽅法如下:
ZipOutputStream(OutputStream out)
该类的常⽤⽅法如下:
ZipOutputStream类的常⽤⽅法
⽅法返回值说明
putNextEntry(ZipEntry e)void开始写⼀个新的ZipEntry,并将流内的位置移⾄entry所指数据的开头write(byte[] b,int off,int len)void将字节数组写⼊当前ZIP条⽬数据
finish()void完成写⼊ZIP输出流的内容,⽆需关闭它所配合的OutputStream setComment(String comment)void可设置此ZIP⽂件的注释⽂件
通过以下⽰例来进⾏说明:
public class MyZip {
private void zip(String zipFileName,File InputFile) throws Exception{
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipFileName));
zip(out,InputFile,"");
System.out.println("压缩中....");
out.close();
}
private void zip(ZipOutputStream out,File f,String base) throws Exception{
if(f.isDirectory()) {
File[] fl = f.listFiles();
out.putNextEntry(new ZipEntry(base+"/"));
base = base.length() == 0?"":base+"/";
for(int i=0;i<fl.length;i++) {
zip(out,fl[i],base+fl[i]);
}
}else {
out.putNextEntry(new ZipEntry(base));
FileInputStream in = new FileInputStream(f);
int b;
System.out.println(base);
while((b =in.read())!=-1) {
out.write(b);
}
in.close();
}
}
public static void main(String agrs[]) {
MyZip book = new MyZip();
try {
book.zip("F:/image.zip", new File("F:/images"));
System.out.println("压缩完成");
}catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
/*输出结果如下:
F:\images\Akali.jpg
F:\images\bg.png
F:\images\captain-america.jpg
F:\images\Fizz.jpg
F:\images\Irelia.jpg
F:\images\LeBlanc.jpg钱学森 友来
F:\images\Lux.jpg
F:\images\search.png
F:\images\send.png
F:\images\timg.jpg
压缩中....
压缩完成
*/
并且在F盘中能够到
2、解压ZIP⽂件
ZipInputStream类可以读取ZIP压缩格式的⽂件,包括已压缩和未压缩的条⽬,常⽤构造⽅法如下:(1)ZipInputStream(InputStream in)
常⽤⽅法如下:
ZipInputStream类的常⽤⽅法
⽅法返回值说明
read(byte b,inf off,int len)int读取⽬标b数组内off偏移量的位置,长度为len字节
available()int判断是否已读完⽬前entry所指定的数据,已读完返回0,否则返回1 closeEntry()void 关闭当前ZIP条⽬并定位流以读取下⼀个条⽬
skip(long n)long跳过当前ZIP条⽬中指定的字数
getNextEntry()ZipEntry读取下⼀个ZipEntry,并将流内的位置移⾄该entry所指数据的开头createZipEntry(String name)ZipEntry以指定的name参数新建⼀个ZipEntry对象
通过以下⽰例来说明:
public class Decompressing {
public static void main(String args[]) {
ZipInputStream zin;
try {
zin = new ZipInputStream(new FileInputStream("F:/image.zip"));  ZipEntry entry = NextEntry();
邵峰晶while(((NextEntry())!=null)&&!entry.isDirectory()) {    File file = new Name());
System.out.println(file);
if(!ists()) {
file.mkdir();
}
zin.closeEntry();
System.out.Name()+"解压成功");
}潘金莲新传电影
zin.close();
}catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
致密气
}
/*输出结果如下:
F:\images\Akali.jpg
F:\images\Akali.jpg解压成功
F:\images\bg.png
F:\images\bg.png解压成功
F:\images\captain-america.jpg
F:\images\captain-america.jpg解压成功
F:\images\Fizz.jpg
F:\images\Fizz.jpg解压成功
F:\images\Irelia.jpg
F:\images\Irelia.jpg解压成功
F:\images\LeBlanc.jpg
F:\images\LeBlanc.jpg解压成功
F:\images\Lux.jpg
F:\images\Lux.jpg解压成功2009我的梦想
F:\images\search.png
F:\images\search.png解压成功
F:\images\send.png
F:\images\send.png解压成功
F:\images\timg.jpg
F:\images\timg.jpg解压成功
*/

本文发布于:2024-09-22 12:46:58,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/158910.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:压缩   输出   数据   读取   指定   程序   说明
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议