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 对象输出流