输入输出和反射(中)

1.用打印流输出文件内容

File file=new File("L:/io.txt");

PrintStream ps=new PrintStream(file);

ps.print("输入输出和反射");

ps.close();

2.格式化输出

String word="输入输出和反射";

ps.printf("姓名:%s",word);

%s       表示内容为字符串

%d        表示内容为整数

%f          表示内容为小数

%c          表示内容为字符

3.压缩流的实现

zip是一种较为常见的圧缩形式,在Java中想要实现ZIP的压缩需要导入java.util.zip包,可以使用此包中的ZipFile,ZipOutputStream,ZipInputStream,ZipEntry几个类完成操作。

在Java io中,不仅可以实现zip压缩格式的输入,输出,也可以实现jar及gzip文件格式的压缩。

jar压缩输出流 :JarOutputStream

jar压缩输入流: JarInputStream

jar文件:JarFile

jar实体:JarEntry

4.单文件压缩ZipOutputStream类

File f=new File("D:"+File.separator+"hello.txt");
File zipFile =new File("D:"+File.separator+"hello.zip");

//FileInputStream(字符流的文件输入流)该流用于从文件读取数据,
InputStream input =new FileInputStream(f);

//FileOutputStream(字符流的文件输出流)用来创建一个文件并向文件中写数据。 
//ZipOutputStream将一个普通文件变成一个压缩文件
ZipOutputStream zipOut=new ZipOutputStream(new FileOutputStream(zipFile));

//ZipEntry用特殊的名字来创建一个新的zip对象(不能使用中文)
//putNextEntry开始写入新的 ZIP 文件条目并将流定位到条目数据的开始处。
zipOut.putNextEntry(new ZipEntry(f.getName()));
//setComment实体的注释
zipOut.setComment("这是hello文件被压缩的文件");

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

5.多文件压缩

File file=new File("I:"+File.separator+"lishuai");
File zipFile=new File("I:"+File.separator+"yasuo.zip");
InputStream is=null;
//FileOutputStream(字符流的文件输出流)用来创建一个文件并向文件中写数据。 
//ZipOutputStream将一个普通文件变成一个压缩文件
ZipOutputStream zipOut=new ZipOutputStream(new FileOutputStream(zipFile));
//setComment实体的注释
zipOut.setComment("多文件压缩");
//isDirectory判断一个指定的路径是否为目录

if(file.isDirectory()){
//listFiles()方法返回的是一个File类的引用,它具有类的所有属性和方法
File[] files=file.listFiles();
for(int i=0;i<files.length;i++){
//FileInputStream(字符流的文件输入流)该流用于从文件读取数据,
is =new FileInputStream(files[i]);
//ZipEntry用特殊的名字来创建一个新的zip对象(不能使用中文)
//putNextEntry开始写入新的 ZIP 文件条目并将流定位到条目数据的开始处。
zipOut.putNextEntry(new ZipEntry(file.getName()+File.separator+files[i].getName()));
int temp=0;
while((temp=is.read())!=-1){
zipOut.write(temp);
}
is.close();
}
}
zipOut.close();

6.解压单文件

File file=new File("i:"+File.separator+"lishuai.zip");
//被解压出来后的文件名字
File outfile=new File("i:"+File.separator+"unZipFile.txt");
//ZipFile提供创建、解压缩和打开 zip 存档的静态方法。
ZipFile zipFile=new ZipFile(file);
//getEntry返回指定名称的 ZIP 文件条目
ZipEntry entry=zipFile.getEntry("wenjian.txt");
//getInputStream返回输入流以读取指定 ZIP 文件条目的内容。
InputStream input=zipFile.getInputStream(entry);
//FileOutputStream(字符流的文件输出流)用来创建一个文件并向文件中写数据。 
OutputStream output=new FileOutputStream(outfile);
int temp=0;
while((temp=input.read())!=-1){
output.write(temp);
}
output.close();
input.close();

7.多文件解压

File file=new File("i:"+File.separator+"yasuo.zip");
File outfile=null;
//ZipFile提供创建、解压缩和打开 zip 存档的静态方法。
ZipFile zipFile=new ZipFile(file);
//FileInputStream(字符流的文件输入流)该流用于从文件读取数据,
//ZipInputStream读取ZIP格式的压缩文件
ZipInputStream zipInput=new ZipInputStream(new FileInputStream(file));
//定义一个ZipEntry对象,用于接收压缩文件中 的每一个实体 
ZipEntry entry=null;
InputStream input=null;
OutputStream output=null;
//putNextEntry开始写入新的 ZIP 文件条目并将流定位到条目数据的开始处。
while((entry=zipInput.getNextEntry())!=null){
System.out.println("解压"+entry.getName()+"文件");
outfile=new File("i:"+File.separator+entry.getName());
//getParentFile()返回此抽象路径名 父目录的抽象路径名
//exists()测试此抽象路径名表示的文件或目录是否存在。
if(!outfile.getParentFile().exists()){
//mkdir()创建此抽象路径名指定的目录。
outfile.getParentFile().mkdir();

}

if(!outfile.exists()){
//createNewFile()创建一个新的空文件
outfile.createNewFile();
}
//getInputStream返回输入流以读取指定 ZIP 文件条目的内容。
input=zipFile.getInputStream(entry);
//FileOutputStream(字符流的文件输出流)用来创建一个文件并向文件中写数据。 
output=new FileOutputStream(outfile);
int temp=0;
while((temp=input.read())!=-1){
output.write(temp);
}
input.close();
output.close();

8.对象序列化和反序列化

ObjectInputStream     对象输入流

ObjectOutputStream    对象输出流



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值