Java中IO整理完整版(7)

2025-07-22

?? out = new DataOutputStream(new FileOutputStream(file)); ?? for(char temp : ch){ ?? out.writeChar(temp); ?? }

?? out.close(); ?? } ?? }

A B C

现在我们在上面例子的基础上,使用DataInputStream读出内容

?? import java.io.DataInputStream; ?? import java.io.File;

?? import java.io.FileInputStream; ?? import java.io.IOException; ??

?? public class DataOutputStreamDemo{

?? public static void main(String[] args) throws IOException{ ?? File file = new File(\ ?? DataInputStream FileInputStream(file));

?? char[] ch = new char[10]; ?? int count = 0; ?? char temp;

?? while((temp = input.readChar()) != 'C'){ ?? ch[count++] = temp; ?? }

?? System.out.println(ch); ?? } ?? }

input

=

new

DataInputStream(new

【运行结果】: AB

合并流 SequenceInputStream

SequenceInputStream主要用来将2个流合并在一起,比如将两个txt中的内容合并为另外一个txt。下面给出一个实例:

?? import java.io.File;

?? import java.io.FileInputStream; ?? import java.io.FileOutputStream; ?? import java.io.IOException; ?? import java.io.InputStream; ?? import java.io.OutputStream;

?? import java.io.SequenceInputStream; ?? ?? /**

?? * 将两个文本文件合并为另外一个文本文件 ?? * */

?? public class SequenceInputStreamDemo{

?? public static void main(String[] args) throws IOException{ ?? File file1 = new File(\ ?? File file2 = new File(\?? File file3 = new File(\ ?? InputStream input1 = new FileInputStream(file1); ?? InputStream input2 = new FileInputStream(file2); ?? OutputStream output = new FileOutputStream(file3); ?? // 合并流

?? SequenceInputStream sis = new SequenceInputStream(input1, input2); ?? int temp = 0;

?? while((temp = sis.read()) != -1){ ?? output.write(temp); ?? }

??? input1.close(); ??? input2.close(); ??? output.close(); ??? sis.close(); ??? } ??? }

【运行结果】

结果会在hello.txt文件中包含hello1.txt和hello2.txt文件中的内容。

文件压缩 ZipOutputStream类

先举一个压缩单个文件的例子吧:

??? import java.io.File;

??? import java.io.FileInputStream; ??? import java.io.FileOutputStream; ??? import java.io.IOException; ??? import java.io.InputStream;

??? import java.util.zip.ZipEntry;

??? import java.util.zip.ZipOutputStream; ???

??? public class ZipOutputStreamDemo1{

??? public static void main(String[] args) throws IOException{ ??? File file = new File(\??? File zipFile = new File(\ ??? InputStream input = new FileInputStream(file);

??? ZipOutputStream zipOut = new ZipOutputStream(new FileOutputStream( ??? zipFile));

??? zipOut.putNextEntry(new ZipEntry(file.getName())); ??? // 设置注释

??? zipOut.setComment(\ ??? int temp = 0;

??? while((temp = input.read()) != -1){ ??? zipOut.write(temp); ??? }

??? input.close(); ??? zipOut.close(); ??? } ??? }

【运行结果】

运行结果之前,我创建了一个hello.txt的文件,原本大小56个字节,但是压缩之后产生hello.zip之后,居然变成了175个字节,有点搞不懂。 不过结果肯定是正确的,我只是提出我的一个疑问而已。

上面的这个例子测试的是压缩单个文件,下面的们来看看如何压缩多个文件。

??? import java.io.File;

??? import java.io.FileInputStream; ??? import java.io.FileOutputStream; ??? import java.io.IOException; ??? import java.io.InputStream; ??? import java.util.zip.ZipEntry;

??? import java.util.zip.ZipOutputStream; ??? ??? /**

??? * 一次性压缩多个文件 ??? * */

??? public class ZipOutputStreamDemo2{

??? public static void main(String[] args) throws IOException{ ??? // 要被压缩的文件夹

??? File file = new File(\

??? File zipFile = new File(\ ??? InputStream input = null;

??? ZipOutputStream zipOut = new ZipOutputStream(new FileOutputStream( ??? zipFile));

??? zipOut.setComment(\ ??? if(file.isDirectory()){

??? File[] files = file.listFiles(); ??? for(int i = 0; i < files.length; ++i){ ??? input = new FileInputStream(files[i]);

??? zipOut.putNextEntry(new ZipEntry(file.getName() ??? + File.separator + files[i].getName())); ??? int temp = 0;

??? while((temp = input.read()) != -1){ ??? zipOut.write(temp); ??? }

??? input.close(); ??? } ??? }

??? zipOut.close(); ??? } ??? }

【运行结果】

先看看要被压缩的文件吧:

接下来看看压缩之后的:

大家自然想到,既然能压缩,自然能解压缩,在谈解压缩之前,我们会用到一个ZipFile类,先给一个这个例子吧。java中的每一个压缩文件都是可以使用ZipFile来进行表示的

??? import java.io.File;

??? import java.io.IOException; ??? import java.util.zip.ZipFile; ??? ??? /**

??? * ZipFile演示 ??? * */

??? public class ZipFileDemo{

??? public static void main(String[] args) throws IOException{ ??? File file = new File(\ ??? ZipFile zipFile = new ZipFile(file);

??? System.out.println(\压缩文件的名称为:\ ??? } ??? }

【运行结果】:

压缩文件的名称为:d:\\hello.zip

现在我们呢是时候来看看如何加压缩文件了,和之前一样,先让我们来解压单个压缩文件(也就是压缩文件中只有一个文件的情况),我们采用前面的例子产生的压缩文件hello.zip

??? import java.io.File;

??? import java.io.FileOutputStream; ??? import java.io.IOException; ??? import java.io.InputStream; ??? import java.io.OutputStream; ??? import java.util.zip.ZipEntry; ??? import java.util.zip.ZipFile;


Java中IO整理完整版(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:统计业务知识

相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219