Java|Java inputstream和outputstream使用详解
计算机在进行I/O时都是以流的形式来进行,Java中所有流的相关操作的类,都继承自以下四个抽象类。
输入流 | 输出流 | |
字节流 | InputStream | OutputStream |
字符流 | Reader | Writer |
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 blocke.printStackTrace(); } catch (IOException e) {// TODO Auto-generated catch blocke.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 blocke.printStackTrace(); } catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace(); }finally{//流关闭try {if(in != null){in.close(); }if(out != null){out.close(); }} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace(); }} }}
D盘中原文件存在,在D盘中创建了目标文件
文章图片
注意:在判断原文件是否存在时,直接判断字节流文件对象是否存在
到此这篇关于Java inputstream和outputstream使用详解的文章就介绍到这了,更多相关Java inputstream和outputstream内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 急于表达——往往欲速则不达
- 第三节|第三节 快乐和幸福(12)
- 20170612时间和注意力开销记录
- 2.6|2.6 Photoshop操作步骤的撤消和重做 [Ps教程]
- 对称加密和非对称加密的区别
- 眼光要放高远
- 樱花雨
- 前任
- 2020-04-07vue中Axios的封装和API接口的管理