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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Springboot继承Keycloak实现单点登录与退出功能

    Springboot继承Keycloak实现单点登录与退出功能

    这篇文章主要介绍了Springboot继承Keycloak实现单点登陆与退出,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-08-08
  • 身份证号码验证算法深入研究和Java实现

    身份证号码验证算法深入研究和Java实现

    这篇文章主要介绍了身份证号码验证算法深入研究和Java实现,本文讲解了18身份证号码的结构、根据17位数字本体码获取最后一位校验码程序实例等内容,需要的朋友可以参考下
    2015-06-06
  • Java泛型之上界下界通配符详解

    Java泛型之上界下界通配符详解

    这篇文章主要介绍了Java泛型之上界下界通配符详解,学习使用泛型编程时,更令人困惑的一个方面是确定何时使用上限有界通配符以及何时使用下限有界通配符。本文提供一些设计代码时要遵循的一些准则。,需要的朋友可以参考下
    2019-06-06
  • 详解Spring数据缓存注解@Cacheable、@CachePut、@CacheEvict

    详解Spring数据缓存注解@Cacheable、@CachePut、@CacheEvict

    这篇文章主要介绍了详解Spring数据缓存注解@Cacheable、CachePut、@CacheEvict,当以一组参数第一次调用某个方法时,返回值会被保存在缓存中,如果这个方法再次以相同的参数进行调用时,这个返回值会从缓存中查询获取,需要的朋友可以参考下
    2023-07-07
  • 浅谈java异常处理(父子异常的处理)

    浅谈java异常处理(父子异常的处理)

    下面小编就为大家带来一篇浅谈java异常处理(父子异常的处理)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-09-09
  • Java实现截取字符串的操作详解

    Java实现截取字符串的操作详解

    在这篇文章中,小编将带大家一起学习一下在Java中把一个String截断到所需的字符数的几种方法,文中的方法简洁易懂,需要的可以参考一下
    2022-07-07
  • SpringBoot2.x过后static下的静态资源无法访问的问题

    SpringBoot2.x过后static下的静态资源无法访问的问题

    这篇文章主要介绍了SpringBoot2.x过后static下的静态资源无法访问的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01
  • Java基于解释器模式实现定义一种简单的语言功能示例

    Java基于解释器模式实现定义一种简单的语言功能示例

    这篇文章主要介绍了Java基于解释器模式实现定义一种简单的语言功能,简单描述了解释器模式的概念、功能及Java使用解释器模式定义一种简单语言的相关实现与使用技巧,需要的朋友可以参考下
    2018-05-05
  • java中的JsonSerializer用法,前后端单位转换必备

    java中的JsonSerializer用法,前后端单位转换必备

    这篇文章主要介绍了java中的JsonSerializer用法,前后端单位转换必备!具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • IDEA的Swing可视化插件JFormDesigner详解

    IDEA的Swing可视化插件JFormDesigner详解

    JFormDesigner是一个专业的软件应用程序,专门用于帮助您开发Java Swing用户界面,而无需具备编程技能。它可作为独立实用程序使用,也可以将其用作各种IDE的插件,本文给大家介绍idea Swing可视化插件,感兴趣的朋友一起看看吧
    2022-06-06

最新评论