Java inputstream和outputstream使用详解

 更新时间:2021年08月11日 16:38:42   作者:努力努力再努力_qiqijia  
这篇文章主要介绍了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区别

    这篇文章主要介绍了Java语言的Comparable和Comparator区别,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-06-06
  • 深入浅析java中finally的用法

    深入浅析java中finally的用法

    finally自己由关键字finally和后面的finally块组成。这篇文章重点给大家介绍java中finally的用法,需要的朋友参考下吧
    2018-06-06
  • SpringBoot部署到腾讯云的实现示例

    SpringBoot部署到腾讯云的实现示例

    记录一下自己第一次部署springboot项目,本文主要介绍了SpringBoot部署到腾讯云的实现示例,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-08-08
  • Springboot+Mybatis中typeAliasesPackage正则扫描实现方式

    Springboot+Mybatis中typeAliasesPackage正则扫描实现方式

    这篇文章主要介绍了Springboot+Mybatis中typeAliasesPackage正则扫描实现方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • 解析Java的Spring框架的BeanPostProcessor发布处理器

    解析Java的Spring框架的BeanPostProcessor发布处理器

    这篇文章主要介绍了Java的Spring框架的BeanPostProcessor发布处理器,Spring是Java的SSH三大web开发框架之一,需要的朋友可以参考下
    2015-12-12
  • Spring中使用atomikos+druid实现经典分布式事务的方法

    Spring中使用atomikos+druid实现经典分布式事务的方法

    这篇文章主要介绍了Spring中使用atomikos+druid实现经典分布式事务的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-06-06
  • Java中的Optional类用法详细讲解

    Java中的Optional类用法详细讲解

    这篇文章详细介绍了Java中Optional类的使用,包括创建Optional对象,Optional对象的常用方法,如get、orElse、orElseGet、orElseThrow等,以及Optional类结合Lambda表达式和StreamAPI的使用,需要的朋友可以参考下
    2024-10-10
  • Servlet服务端实现原理详解

    Servlet服务端实现原理详解

    Servlet是Sun公司开发动态web的一门技术,Sun公司在这些API中提供了一个接口叫做:Servlet,如果想开发一个Servlet程序,只需要完成两个小步骤:编写一个类,实现Servlet接口、把开发好的Java类部署到web服务器中。但是你了解Servlet实现的原理吗
    2022-07-07
  • Spring Cloud之服务监控turbine的示例

    Spring Cloud之服务监控turbine的示例

    这篇文章主要介绍了Spring Cloud之服务监控turbine的示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • 聊聊Java的switch为什么不支持long

    聊聊Java的switch为什么不支持long

    这篇文章主要介绍了Java的switch为什么不支持long,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10

最新评论