第1关:学习-Java输入输出之OutputStream类之字节数据输出

  • 任务描述
  • 相关知识
    • 什么是 OutputStream 类
    • OutputStream 类的常用方法
    • OutputStream 类的常用子类
  • 编程要求
  • 测试说明

任务描述

本关任务:使用字节输出流将给定的字符串写入到给定的文件中。

相关知识

什么是 OutputStream 类

OutputStream 类是 Java 标准库提供的最基本的字节输出流。OutputStream 类也是抽象类,它是所有输出流的超类。

OutputStream 类的常用方法

  • write()方法:这个方法会写入一个字节到输出流;
  • close()方法:这个方法用于关闭输出流;
  • flush()方法:这个方法是将缓冲区的内容真正输出到目的地。

OutputStream 类的常用子类

  • FileOutputStream 类:用于将数据写入到输出流文件;
  • ByteArrayOutputStream 类:在内存中模拟一个字节流输出。。

由于 OutputStream 类是抽象类,我们以它的子类 FileOutputStream 类为例,演示如何将数据写入到文件中。 将若干个字节写入文件流示例:

  1. public static void main(String[] args) throws IOException{ // 抛出异常
  2. // 创建FileOutputStream对象
  3. OutputStream output = new FileOutputStream("C:\\Users\\yy\\Desktop\\a.txt");
  4. // 写入字节
  5. output.write(72); // 72代表H,以下类推
  6. output.write(101); // e
  7. output.write(108); // l
  8. output.write(108); // l
  9. output.write(111); // o
  10. // 关闭流
  11. output.close();
  12. }

执行结果:在C:/Users/yy/Desktop目录下的a.txt文件中写入了 Hello 字符串。

每次写入一个字节非常麻烦,更常见的方法是一次性写入若干字节。这时,可以用 OutputStream 提供的重载方法 write(byte[]) 来实现:

  1. public static void main(String[] args) throws IOException{
  2. // 创建FileOutputStream对象
  3. OutputStream output = new FileOutputStream("C:\\Users\\yy\\Desktop\\a.txt");
  4. // 写入数据
  5. output.write("Hello".getBytes("UTF-8")); // 将字符串通过getBytes()方法转换为字节数组
  6. // 关闭流
  7. output.close();
  8. }

和 InputStream 类一样,上述代码没有考虑到在发生异常的情况下如何正确地关闭资源。写入过程也会经常发生 IO 错误,例如,磁盘已满,无权限写入等等。我们需要用 try(resource) 来保证 OutputStream 类在无论是否发生 IO 错误的时候,都能够正确地关闭:

  1. public static void main(String[] args) throws IOException{
  2. try{
  3. // 创建FileOutputStream对象
  4. OutputStream output = new FileOutputStream("C:\\Users\\yy\\Desktop\\a.txt");
  5. // 写入数据
  6. output.write("Hello".getBytes("UTF-8")); // 将字符串通过getBytes()方法转换为字节数组
  7. } // 编译器在此自动为我们写入finally并调用close()
  8. }

编程要求

仔细阅读右侧编辑区内给出的代码框架及注释,在 Begin-End 间编写程序代码,使用字节输出流将给定的字符串写入到给定的文件中,具体要求如下:

  • 接收给定的一行字符串(如:hello,/test/a.txt。该字符串中含有两个元素,第一个为要输出到文件的字符串,第二个为文件路径);
  • 使用字节输出流将给定的字符串输入到给定的文件中。

注意:字符串中的逗号为中文逗号。

测试说明

平台将使用测试集运行你编写的程序代码,若全部的运行结果正确,则通关。

例: 测试输入:

  1. hello,/test/a.txt

预期输出(后台查看给定文件中的内容产生的结果):

  1. 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类之字节数据输出相关推荐

  1. [Java]学习Java(1)运算符语句类

    [Java]学习Java(1)运算符&语句&类 一.运算符&语句 1.相等运算符"==" (1)基本类型时值相等就为true (2)对象比较时比较其引用地址 ...

  2. educoder实训平台java入门_educoder上的实训题目(学习-Java包装类之Byte类)

    学习-Java包装类之Byte类 编程要求 仔细阅读右侧编辑区内给出的代码框架及注释,在 Begin-End 中完成 Byte 类与基本数据类型之间的转换,具体要求如下: 获取键盘第一次输入的 byt ...

  3. java的outputstream_Java OutputStream类

    首页 > 基础教程 > IO流 > OutputStream类 Java OutputStream类 定义 public OutputStream() 方法 类图 (1)Output ...

  4. Prometheus:Java调用PromQL工具类(瞬时数据查询)

    目录 PostMan瞬时数据查询:Windows主机空闲内存量 请求 响应数据 Java:调用PromQL工具类(瞬时数据查询) Prometheus返回结果反序列化 Prometheus常用Prom ...

  5. 经过前面几天的学习已经初步了解到了Java 今天开始学习Java的 对象与类

    在了解对象与类之前,首先先学习方法 01.方法概述 概述:说白了就是用来存储一段代码 特点: 方法只有先定义才能使用 方法不会自动执行,必须调用才会执行(方法不调用,不会执行) 02.方法定义和调用( ...

  6. 第13天学习Java的笔记(类定义)

    类和对象 类=属性+行为:类是抽象的,对象是具体化的. package Demo1301;/* 定义一个类,用来模拟"学生"事务.其中就有两个组成部分, 属性(是什么):成员变量( ...

  7. 学习-Java包装类之Integer类(1)

    任务描述 本关任务:掌握 Integer 类的定义与方法的使用. 相关知识 Java 是个面向对象语言,所有的操作都是基于对象.Object 类是 Java 中的对象基础,所有 Java 中的类都有个 ...

  8. 学习-Java包装类之Long类(3)

    任务描述 本关任务:使用 Long 类的定义与方法,完成 Long 类与基本数据类型的转换. 相关知识 Long 类是基本类型 long 的包装类,它包含若干方法来有效地处理一个长整型值,如将其转换为 ...

  9. 这样去学习Java的字符串处理类---学习总结

    字符串处理类 String和StringBuilder 目录 字符串处理类 String类 String常用方法 案例: length() charAt() substring() 求子串 index ...

最新文章

  1. 我眼中的Visual Studio 2010架构工具
  2. 中序遍历的非递归算法
  3. 关于Metasploit开发环境的搭建
  4. 在将规则文件上传到sonarQube时,Findbugs配置文件无效错误
  5. c语言经典游戏,C语言——经典小游戏——打砖块
  6. 手把手教你从0-1做一张酷炫驾驶舱,让老板对你赞不绝口
  7. 在java中使用关键字导入包_java的import关键字的使用
  8. 【小甲鱼c语言】C语言函数大全语法着色版(免费下载)
  9. lammps输出模拟结果的4种方法
  10. 云呐-工单管理制度及流程,工单管理规范
  11. 【无标题】2022年“研究生科研素养提升”系列公益讲座在线测评本次测验答题时间为8月15日-26日,60分及格,每人有一次补考机会。
  12. Spark学习内容介绍
  13. 神兽传说JAVA下载_JAVA游戏神兽传说攻略
  14. 【PDF密码删除软件】Enolsoft PDF Password Remover for Mac
  15. Excel 数据转化为Sql脚本
  16. ORACLE WITH与性能优化
  17. springboot easyexcel不创建对象导入excel 通用版
  18. 老白智慧药房显示服务器异常,老白智慧药房app
  19. missing locales
  20. 深入了解DVD光盘结构

热门文章

  1. 清华普天1G优盘量产成功!
  2. 运用百度地图Http接口计算两地行车距离
  3. 真正好用的微信恢复工具
  4. Unity安卓包同意隐私政策前获取AndroidID的问题定位原因
  5. oracle数据库 笛卡尔积,Oracle连接查询和笛卡尔积
  6. 在HTML中设置锚点常用的有三种方式
  7. 人生需要一些鼓励的话语
  8. 百度为什么不收录、收录慢、收录少?怎么办?
  9. Codeforces Round #536 (Div. 2) B. Lunar New Year and Food Ordering
  10. Python文件怎么运行