java之IO整理(中)
一:打印流
/*System.out.println()重定向输出*/
/*public static void main(String[] args) {
System.out.println("MM");//直接输出到控制台
File file=new File("d:"+File.separator+"mm.txt");
try {
System.setOut(new PrintStream(new FileOutputStream(file)));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
System.out.println("这些内容在文件中才能看到哦!");
}*/ /*System.err重定向 这个例子也提示我们可以使用这种方法保存错误信息*/
/*public static void main(String[] args) {
File file=new File("d:"+File.separator+"mm.txt");
System.out.println("这些在控制台输出!");
try {
System.setErr(new PrintStream(new FileOutputStream(file)));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
System.out.println("这些内容在文件中才能看到哦!");
}*/ /*BufferedReader的小例子
注意: BufferedReader只能接受字符流的缓冲区,因为每一个中文需要占据两个字节,所以需要将System.in这个字节输入流变为字符输入流,采用:
BufferedReader buf = new BufferedReader(
new InputStreamReader(System.in));*/
public static void main(String[] args) {
BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(System.in));
String str=null;
System.out.println("请输入内容:");
try {
str=bufferedReader.readLine();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("你输入的内容是:"+str);
}
二:合并流:
package com.js.ai.modules.pointwall.testxfz; import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
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("d:"+File.separator+"hello1.txt");
File file2=new File("d:"+File.separator+"hello2.txt");
File file3=new File("d:"+File.separator+"hello.txt");
InputStream inputStream1=new FileInputStream(file1);
InputStream inputStream2=new FileInputStream(file2);
OutputStream outputStream=new FileOutputStream(file3);
//合并流
SequenceInputStream sequenceInputStream=new SequenceInputStream(inputStream1, inputStream2);
int temp=0;
while((temp=sequenceInputStream.read())!=(-1)){
outputStream.write(temp);
}
inputStream1.close();
inputStream2.close();
outputStream.close();
sequenceInputStream.close();
}
}
三:文件压缩:
/*压缩单个文件*/
public class ZipOutputStreamDemo1 {
public static void main(String[] args) throws IOException {
File file=new File("d:"+File.separator+"hello.txt");
File zipFile=new File("d:"+File.separator+"hello.zip");
InputStream inputStream=new FileInputStream(file);
ZipOutputStream zipOutputStream=new ZipOutputStream(new FileOutputStream(zipFile));
zipOutputStream.putNextEntry(new ZipEntry(file.getName()));
zipOutputStream.setComment("Hello");//设置注释
int temp=0;
while((temp=inputStream.read())!=(-1)){
zipOutputStream.write(temp);
}
inputStream.close();
zipOutputStream.close();
}
}
/*压缩多个文件*/
public class ZipOutputStreamDemo1 {
public static void main(String[] args) throws IOException {
File file=new File("d:"+File.separator+"temp");// 要被压缩的文件夹
File zipFile=new File("d:"+File.separator+"zipFile.zip");
InputStream inputStream=null;
ZipOutputStream zipOutputStream=new ZipOutputStream(new FileOutputStream(zipFile));
zipOutputStream.setComment("Hello");//设置注释
if(file.isDirectory()){
File[] files =file.listFiles();
for(int i=0;i<files.length;i++){
inputStream=new FileInputStream(files[i]);
zipOutputStream.putNextEntry(new ZipEntry(file.getName()+File.separator+files[i].getName()));
int temp=0;
while((temp=inputStream.read())!=(-1)){
zipOutputStream.write(temp);
}
inputStream.close();
}
}
zipOutputStream.close();
}
}
四:文件解压
/*解压单个文件*/
public class ZipOutputStreamDemo1 {
public static void main(String[] args) throws IOException {
File file=new File("d:"+File.separator+"hello.zip");
File outFile=new File("d:"+File.separator+"outZipFile.txt");
ZipFile zipFile=new ZipFile(file);
ZipEntry entry=zipFile.getEntry("hello.txt");
InputStream inputStream=zipFile.getInputStream(entry);
OutputStream OutputStream=new FileOutputStream(outFile);
int temp=0;
while((temp=inputStream.read())!=(-1)){
OutputStream.write(temp);
}
inputStream.close();
OutputStream.close();
}
}
/*解压一个压缩文件中包含多个文件的情况*/
public class ZipOutputStreamDemo1 {
public static void main(String[] args) throws IOException {
File file=new File("d:"+File.separator+"zipFile.zip");
File outFile=null;
ZipFile zipFile=new ZipFile(file);
ZipInputStream zipInputStream=new ZipInputStream(new FileInputStream(file));
ZipEntry entry=null;
InputStream inputStream=null;
OutputStream OutputStream=null;
while((entry=zipInputStream.getNextEntry())!=null){
System.out.println("解压文件:"+entry.getName());
outFile=new File("d:"+File.separator+entry.getName());
if(!outFile.getParentFile().exists()){
outFile.getParentFile().mkdirs();
}
if(!outFile.exists()){
outFile.createNewFile();
}
inputStream=zipFile.getInputStream(entry);
OutputStream=new FileOutputStream(outFile);
int temp=0;
while((temp=inputStream.read())!=(-1)){
OutputStream.write(temp);
}
inputStream.close();
OutputStream.close();
}
}
}
五、回退流
public class PushBackInputStreamDemo {
public static void main(String[] args) throws Exception {
String str="hello,rollenholt";
PushbackInputStream push=null;
ByteArrayInputStream bat=null;
bat=new ByteArrayInputStream(str.getBytes());
push=new PushbackInputStream(bat);
int temp=0;
while((temp=push.read())!=(-1)){
if(temp==','){
push.unread(temp);
temp=push.read();
System.out.print("(回退:"+(char)temp+")");
}else {
System.out.print((char)temp);
}
}
}
}
java之IO整理(中)的更多相关文章
- java之IO整理(下)
一:对象的序列化 对象序列化就是把一个对象变为二进制数据流的一种方法. 一个类要想被序列化,就行必须实现java.io.Serializable接口.虽然这个接口中没有任何方法,就如同之前的clone ...
- java之IO整理(上)
/*//创建一个新文件 public static void main(String[] args) { File file=new File("D:\\hello.txt"); ...
- JAVA的IO学习
IO 有具体的分类: 有具体的分类:1:根据处理的数类型不同:字节流和字符流.2:根据流向不同:输入流和输出流. =============(补充字节跟字符概念区分)================= ...
- Java之IO(九)其它字节流
转载请注明源出处:http://www.cnblogs.com/lighten/p/7063161.html 1.前言 之前的章节已经介绍了java的io包中所有成对(输入.输出对应)的字节流,本章介 ...
- Java之IO(八)PipedIutputStream和PipedOutputStream
转载请注明源出处:http://www.cnblogs.com/lighten/p/7056278.html 1.前言 本章介绍Java的IO体系中最后一对字节流--管道流.之前在字节数组流的时候就说 ...
- Java【IO流、字节流、字符流】
1.内存是临时存储 Input输入(读取) output输出(输出) 流:数据(字符字节)1个字符=2个字节 1个字节=8个二进制位 输入:把硬盘中的数据读取到内存中 输出:把内存中的数据写入到硬盘中 ...
- java中的IO整理
写在前面:本文章基本覆盖了java IO的全部内容,java新IO没有涉及,因为我想和这个分开,以突出那个的重要性,新IO哪一篇文章还没有开始写,估计很快就能和大家见面.照旧,文章依旧以例子为主,因为 ...
- 【转】 Java中的IO整理
写在前面:本文章基本覆盖了java IO的全部内容,java新IO没有涉及,因为我想和这个分开,以突出那个的重要性,新IO哪一篇文章还没有开始写,估计很快就能和大家见面.照旧,文章依旧以例子为主,因为 ...
- 揭开Java IO流中的flush()的神秘面纱
大家在使用Java IO流中OutputStream.PrintWriter --时,会经常用到它的flush()方法. 与在网络硬件中缓存一样,流还可以在软件中得到缓存,即直接在Java代码中缓存. ...
随机推荐
- Android支持Split Apks后,如何获得指定包名下的所有类
从Android5.0以后,支持多个apk动态部署,这导致以前通过单一apk获取包路径下的所有类的方法失效,不过稍微修改一下原先的代码就可以,代码如下 public static final List ...
- Http权威指南(cookie以及web认证机制)
其实对于cookie,想必大家都不陌生,cookie目前主要用于客户端的识别技术. 说到客户端识别技术,就不得不说一个登录态的问题了.登录态顾名思义,用于验证用户的登录与否. 1.登录态 对于PC端网 ...
- html与css与JavaScript的关系
“HTML是网页的结构,CSS是网页的外观,而JavaScript是页面的行为.” 1)HTML—Hypertext Markup Language. 超文本标记语言.用来描述网页的语言. <h ...
- Unity 播放 带 alpha 通道的视频(Video Player组件)
孙广东 2017.6.18 http://blog.csdn.NET/u010019717 通常是 .webm类型文件!!!!! 你可以下载这个文件到本地: Http://tsubakit1.s ...
- 3. 什么是JSR参考实现? - JavaEE基础系列
本文是JavaEE基础系列的第三节. Java EE简介 - JavaEE基础系列 JSR简介 - JavaEE基础系列 上一节中, 我们介绍了什么是JSR.JSR就是一个提交到JCP的抽象请求,包含 ...
- java入门学习(2)—基本数据类型
1.变量:定义变量:[数据类型] 变量名 = 赋值(这样定义的变量一般属于局部变量,放置在栈内存中): 2.标识符:可以有字母(可以使任意文字),数字,下划线,$等组成:但是不能以数字开头,不能是保留 ...
- vue-router(一)
vue路由再vue开发的项目中可以说是一个必用的组件,而这个部分的水却依旧很深,今天我们深入分析其内部的东西,先看这样一个效果: 大家 可以看到上图中,我们通过两种方式实现了一个vue路由跳转的过度动 ...
- 安装伪分布式hbase 0.99.0
查看是否启动成功,输入jps,看到有HMaster和HQuorumPeer,浏览器输入http://localhost:16030/master-status,能打开说明成功 hbase(main): ...
- ranch分析学习(三)
接着上一篇继续研究 上一篇结尾的时候,我们谈到了连接,监听两个监督树,今天我们就来看看这两个监督树和他们的工作者都是干什么的,怎么实现的.文件编号接上篇. 6. ranch_acceptors_sup ...
- threejs 世界坐标与屏幕坐标相互转换
屏幕坐标转世界坐标: let pX = (screenPoint.x / this.scene.renderer.domElement.clientWidth) * 2 - 1; let pY = - ...