学习-Java输入输出之OutputStream类之字节数据输出
第1关:学习-Java输入输出之OutputStream类之字节数据输出
- 任务描述
- 相关知识
- 什么是 OutputStream 类
- OutputStream 类的常用方法
- OutputStream 类的常用子类
- 编程要求
- 测试说明
任务描述
本关任务:使用字节输出流将给定的字符串写入到给定的文件中。
相关知识
什么是 OutputStream 类
OutputStream 类是 Java 标准库提供的最基本的字节输出流。OutputStream 类也是抽象类,它是所有输出流的超类。
OutputStream 类的常用方法
- write()方法:这个方法会写入一个字节到输出流;
- close()方法:这个方法用于关闭输出流;
- flush()方法:这个方法是将缓冲区的内容真正输出到目的地。
OutputStream 类的常用子类
- FileOutputStream 类:用于将数据写入到输出流文件;
- ByteArrayOutputStream 类:在内存中模拟一个字节流输出。。
由于 OutputStream 类是抽象类,我们以它的子类 FileOutputStream 类为例,演示如何将数据写入到文件中。 将若干个字节写入文件流示例:
public static void main(String[] args) throws IOException{ // 抛出异常
// 创建FileOutputStream对象
OutputStream output = new FileOutputStream("C:\\Users\\yy\\Desktop\\a.txt");
// 写入字节
output.write(72); // 72代表H,以下类推
output.write(101); // e
output.write(108); // l
output.write(108); // l
output.write(111); // o
// 关闭流
output.close();
}
执行结果:在C:/Users/yy/Desktop
目录下的a.txt
文件中写入了 Hello 字符串。
每次写入一个字节非常麻烦,更常见的方法是一次性写入若干字节。这时,可以用 OutputStream 提供的重载方法 write(byte[]) 来实现:
public static void main(String[] args) throws IOException{
// 创建FileOutputStream对象
OutputStream output = new FileOutputStream("C:\\Users\\yy\\Desktop\\a.txt");
// 写入数据
output.write("Hello".getBytes("UTF-8")); // 将字符串通过getBytes()方法转换为字节数组
// 关闭流
output.close();
}
和 InputStream 类一样,上述代码没有考虑到在发生异常的情况下如何正确地关闭资源。写入过程也会经常发生 IO 错误,例如,磁盘已满,无权限写入等等。我们需要用 try(resource) 来保证 OutputStream 类在无论是否发生 IO 错误的时候,都能够正确地关闭:
public static void main(String[] args) throws IOException{
try{
// 创建FileOutputStream对象
OutputStream output = new FileOutputStream("C:\\Users\\yy\\Desktop\\a.txt");
// 写入数据
output.write("Hello".getBytes("UTF-8")); // 将字符串通过getBytes()方法转换为字节数组
} // 编译器在此自动为我们写入finally并调用close()
}
编程要求
仔细阅读右侧编辑区内给出的代码框架及注释,在 Begin-End 间编写程序代码,使用字节输出流将给定的字符串写入到给定的文件中,具体要求如下:
- 接收给定的一行字符串(如:hello,/test/a.txt。该字符串中含有两个元素,第一个为要输出到文件的字符串,第二个为文件路径);
- 使用字节输出流将给定的字符串输入到给定的文件中。
注意:字符串中的逗号为中文逗号。
测试说明
平台将使用测试集运行你编写的程序代码,若全部的运行结果正确,则通关。
例: 测试输入:
hello,/test/a.txt
预期输出(后台查看给定文件中的内容产生的结果):
hello
开始你的任务吧,祝你成功!
import java.io.*;
import java.util.Scanner;public class FileTest {public static void main(String[] args) throws IOException {// 请在Begin-End间编写完整代码/********** Begin **********/// 接收给定字符串Scanner input = new Scanner(System.in);String str = input.next();// 切割字符串String[] string= str.split(",");String a = string[0];String path = string[1];// 创建FileOutputStream对象OutputStream fos = new FileOutputStream(path);// 写入数据byte[] b = a.getBytes();fos.write(b);try{fos.close();}catch (Exception e){}/********** End **********/}
}
学习-Java输入输出之OutputStream类之字节数据输出相关推荐
- [Java]学习Java(1)运算符语句类
[Java]学习Java(1)运算符&语句&类 一.运算符&语句 1.相等运算符"==" (1)基本类型时值相等就为true (2)对象比较时比较其引用地址 ...
- educoder实训平台java入门_educoder上的实训题目(学习-Java包装类之Byte类)
学习-Java包装类之Byte类 编程要求 仔细阅读右侧编辑区内给出的代码框架及注释,在 Begin-End 中完成 Byte 类与基本数据类型之间的转换,具体要求如下: 获取键盘第一次输入的 byt ...
- java的outputstream_Java OutputStream类
首页 > 基础教程 > IO流 > OutputStream类 Java OutputStream类 定义 public OutputStream() 方法 类图 (1)Output ...
- Prometheus:Java调用PromQL工具类(瞬时数据查询)
目录 PostMan瞬时数据查询:Windows主机空闲内存量 请求 响应数据 Java:调用PromQL工具类(瞬时数据查询) Prometheus返回结果反序列化 Prometheus常用Prom ...
- 经过前面几天的学习已经初步了解到了Java 今天开始学习Java的 对象与类
在了解对象与类之前,首先先学习方法 01.方法概述 概述:说白了就是用来存储一段代码 特点: 方法只有先定义才能使用 方法不会自动执行,必须调用才会执行(方法不调用,不会执行) 02.方法定义和调用( ...
- 第13天学习Java的笔记(类定义)
类和对象 类=属性+行为:类是抽象的,对象是具体化的. package Demo1301;/* 定义一个类,用来模拟"学生"事务.其中就有两个组成部分, 属性(是什么):成员变量( ...
- 学习-Java包装类之Integer类(1)
任务描述 本关任务:掌握 Integer 类的定义与方法的使用. 相关知识 Java 是个面向对象语言,所有的操作都是基于对象.Object 类是 Java 中的对象基础,所有 Java 中的类都有个 ...
- 学习-Java包装类之Long类(3)
任务描述 本关任务:使用 Long 类的定义与方法,完成 Long 类与基本数据类型的转换. 相关知识 Long 类是基本类型 long 的包装类,它包含若干方法来有效地处理一个长整型值,如将其转换为 ...
- 这样去学习Java的字符串处理类---学习总结
字符串处理类 String和StringBuilder 目录 字符串处理类 String类 String常用方法 案例: length() charAt() substring() 求子串 index ...
最新文章
- 我眼中的Visual Studio 2010架构工具
- 中序遍历的非递归算法
- 关于Metasploit开发环境的搭建
- 在将规则文件上传到sonarQube时,Findbugs配置文件无效错误
- c语言经典游戏,C语言——经典小游戏——打砖块
- 手把手教你从0-1做一张酷炫驾驶舱,让老板对你赞不绝口
- 在java中使用关键字导入包_java的import关键字的使用
- 【小甲鱼c语言】C语言函数大全语法着色版(免费下载)
- lammps输出模拟结果的4种方法
- 云呐-工单管理制度及流程,工单管理规范
- 【无标题】2022年“研究生科研素养提升”系列公益讲座在线测评本次测验答题时间为8月15日-26日,60分及格,每人有一次补考机会。
- Spark学习内容介绍
- 神兽传说JAVA下载_JAVA游戏神兽传说攻略
- 【PDF密码删除软件】Enolsoft PDF Password Remover for Mac
- Excel 数据转化为Sql脚本
- ORACLE WITH与性能优化
- springboot easyexcel不创建对象导入excel 通用版
- 老白智慧药房显示服务器异常,老白智慧药房app
- missing locales
- 深入了解DVD光盘结构