InputStream,OutputStream的用法以及相应的案例

2024-05-11 16:44

本文主要是介绍InputStream,OutputStream的用法以及相应的案例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 文件系统的操作:File类。

2. 文件内容的操作:Stream流。

字符流:IntputStream , OutputStream。

字节流:read , write。


InputStream,OutputStream


InputStream和OutputStream都不能被实例化,他们都是抽象类,在Java中提供了他们的一些子类,可以直接实例,他们分别为,FileInputStream和FileOutputStream。

在实例他们需要参数,1)填写字符转(表示文件的路径)2)填写File对象。

1. InputStream

  在实例完就可以读取文件了,调用read方法来读取文件。一次只读一个字节,返回值为一个整型。

在read封装的方法中,读完一个文件的时候正好是一个字节。

如图:

还有这里的放回值问什么是int?因为当读完的时候,会返回一个-1 , 因为根据一个字节的范围,0-255,最后一个为-1。

如图:

写一个代码,读取D盘上的文件。

如代码:

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;public class Demo2 {public static void main(String[] args) throws IOException {InputStream inputStream = new FileInputStream("d:/test.txt");while(true){int b = inputStream.read();if(b == -1){break;}System.out.printf("0x%x " , b);}}
}

运行结果:


2.OutputStream

关于OutputStream,是调用write方法来写。

如图:

上代码:

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;public class Demo3 {public static void main(String[] args) {try(OutputStream outputStream = new FileOutputStream("d:/test.txt" , true)) {outputStream.write(97);outputStream.write(98);outputStream.write(99);outputStream.write(100);}catch (IOException e){e.printStackTrace();}}
}

上面的true表示的是,是否要追加写原来存在的文件。

我这里写的还是上面图片上的。

如运行结果:

代表成功了。

如图:

我们的test文件也写成功了。


代码案例,复制文件


这里我们直接上代码。

需要注意一点就是在流对象创建好后,需要关闭,可以 .close ,也可以try里面套用,直接就行了。

代码:

import java.io.*;
import java.util.Scanner;public class Demo6 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入要复制的文件路径:");String srcPath = sc.next();System.out.println("请输入要复制文件的目标路径:");String destPath = sc.next();//验证路径是否合法File srcFlie = new File(srcPath);if(!srcFlie.isFile()){System.out.println("不是文件,请重新输入:");return;}File destFile = new File(destPath);if(!destFile.getParentFile().isDirectory()){System.out.println("复制文件的目标路径非法,请重新输入:");return;}try(InputStream inputStream = new FileInputStream(srcFlie);OutputStream outputStream = new FileOutputStream(destFile)){while(true){byte[] bytes = new byte[1024];int n = inputStream.read(bytes);if(n == -1){break;}outputStream.write(bytes , 0 , n);}} catch (IOException e) {throw new RuntimeException(e);}}
}

这篇关于InputStream,OutputStream的用法以及相应的案例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/980085

相关文章

Java Spring的依赖注入理解及@Autowired用法示例详解

《JavaSpring的依赖注入理解及@Autowired用法示例详解》文章介绍了Spring依赖注入(DI)的概念、三种实现方式(构造器、Setter、字段注入),区分了@Autowired(注入... 目录一、什么是依赖注入(DI)?1. 定义2. 举个例子二、依赖注入的几种方式1. 构造器注入(Con

详解MySQL中JSON数据类型用法及与传统JSON字符串对比

《详解MySQL中JSON数据类型用法及与传统JSON字符串对比》MySQL从5.7版本开始引入了JSON数据类型,专门用于存储JSON格式的数据,本文将为大家简单介绍一下MySQL中JSON数据类型... 目录前言基本用法jsON数据类型 vs 传统JSON字符串1. 存储方式2. 查询方式对比3. 索引

MySql基本查询之表的增删查改+聚合函数案例详解

《MySql基本查询之表的增删查改+聚合函数案例详解》本文详解SQL的CURD操作INSERT用于数据插入(单行/多行及冲突处理),SELECT实现数据检索(列选择、条件过滤、排序分页),UPDATE... 目录一、Create1.1 单行数据 + 全列插入1.2 多行数据 + 指定列插入1.3 插入否则更

全面掌握 SQL 中的 DATEDIFF函数及用法最佳实践

《全面掌握SQL中的DATEDIFF函数及用法最佳实践》本文解析DATEDIFF在不同数据库中的差异,强调其边界计算原理,探讨应用场景及陷阱,推荐根据需求选择TIMESTAMPDIFF或inte... 目录1. 核心概念:DATEDIFF 究竟在计算什么?2. 主流数据库中的 DATEDIFF 实现2.1

MySQL中的LENGTH()函数用法详解与实例分析

《MySQL中的LENGTH()函数用法详解与实例分析》MySQLLENGTH()函数用于计算字符串的字节长度,区别于CHAR_LENGTH()的字符长度,适用于多字节字符集(如UTF-8)的数据验证... 目录1. LENGTH()函数的基本语法2. LENGTH()函数的返回值2.1 示例1:计算字符串

Python通用唯一标识符模块uuid使用案例详解

《Python通用唯一标识符模块uuid使用案例详解》Pythonuuid模块用于生成128位全局唯一标识符,支持UUID1-5版本,适用于分布式系统、数据库主键等场景,需注意隐私、碰撞概率及存储优... 目录简介核心功能1. UUID版本2. UUID属性3. 命名空间使用场景1. 生成唯一标识符2. 数

Java中的数组与集合基本用法详解

《Java中的数组与集合基本用法详解》本文介绍了Java数组和集合框架的基础知识,数组部分涵盖了一维、二维及多维数组的声明、初始化、访问与遍历方法,以及Arrays类的常用操作,对Java数组与集合相... 目录一、Java数组基础1.1 数组结构概述1.2 一维数组1.2.1 声明与初始化1.2.2 访问

PostgreSQL的扩展dict_int应用案例解析

《PostgreSQL的扩展dict_int应用案例解析》dict_int扩展为PostgreSQL提供了专业的整数文本处理能力,特别适合需要精确处理数字内容的搜索场景,本文给大家介绍PostgreS... 目录PostgreSQL的扩展dict_int一、扩展概述二、核心功能三、安装与启用四、字典配置方法

MySQL 中的 CAST 函数详解及常见用法

《MySQL中的CAST函数详解及常见用法》CAST函数是MySQL中用于数据类型转换的重要函数,它允许你将一个值从一种数据类型转换为另一种数据类型,本文给大家介绍MySQL中的CAST... 目录mysql 中的 CAST 函数详解一、基本语法二、支持的数据类型三、常见用法示例1. 字符串转数字2. 数字

Python中你不知道的gzip高级用法分享

《Python中你不知道的gzip高级用法分享》在当今大数据时代,数据存储和传输成本已成为每个开发者必须考虑的问题,Python内置的gzip模块提供了一种简单高效的解决方案,下面小编就来和大家详细讲... 目录前言:为什么数据压缩如此重要1. gzip 模块基础介绍2. 基本压缩与解压缩操作2.1 压缩文