Java inputstream和outputstream使用详解
计算机在进行I/O时都是以流的形式来进行,Java中所有流的相关操作的类,都继承自以下四个抽象类。
| 输入流 | 输出流 | |
| 字节流 | InputStream | OutputStream |
| 字符流 | Reader | Writer |
InPutStream的实现
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
public class TestFileInPutStream {
public static void main(String[] args) {
try {
File file = new File("D:/test/testIO.java");
// 如果文件存在,读取文件中的内容,并在控制台输出
if (file.exists()) {
InputStream in = new FileInputStream(file);
int a = 0;
while ((a = in.read()) != -1) {
System.out.print((char) a);
}
in.close();
} else {
// 如果文件不存在返回文件不存在
System.out.println("文件不存在");
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
在D盘已经存在testIO文件如下:

将文件中的内容输出到控制台,结果如下:

OutPutStream的实现
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;
public class TestOutPutStream {
private static InputStream in;
private static OutputStream out;
public static void main(String[] args) {
try {
in = new FileInputStream("D:/test/testIO.java");
if(in == null){
//原文件不存在
System.out.println("原文件不存在");
}else{
//原文件存在,判断目标文件是否存在
File file = new File("D:/test/testIOO.txt");
if(!file.exists()){
//目标文件不存在,创建目标文件
file.getParentFile().mkdirs();
file.createNewFile();
}
//将原文件内容读取到目标文件
out = new FileOutputStream(file);
int a = 0;
while((a = in.read()) != -1){
out.write(a);
}
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
//流关闭
try {
if(in != null){
in.close();
}
if(out != null){
out.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
D盘中原文件存在,在D盘中创建了目标文件

注意:在判断原文件是否存在时,直接判断字节流文件对象是否存在
到此这篇关于Java inputstream和outputstream使用详解的文章就介绍到这了,更多相关Java inputstream和outputstream内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Java语言的Comparable和Comparator区别
这篇文章主要介绍了Java语言的Comparable和Comparator区别,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2023-06-06
Springboot+Mybatis中typeAliasesPackage正则扫描实现方式
这篇文章主要介绍了Springboot+Mybatis中typeAliasesPackage正则扫描实现方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-07-07
解析Java的Spring框架的BeanPostProcessor发布处理器
这篇文章主要介绍了Java的Spring框架的BeanPostProcessor发布处理器,Spring是Java的SSH三大web开发框架之一,需要的朋友可以参考下2015-12-12
Spring中使用atomikos+druid实现经典分布式事务的方法
这篇文章主要介绍了Spring中使用atomikos+druid实现经典分布式事务的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2019-06-06


最新评论