Day16_97_IO_FileOutputStream 写入字节流
FileOutputStream 写入字节流
* java.io.OutPutStream -----> java.io.FileOutputStream 将计算机内存中的数据写于磁盘中.
* 创建字节输出流有两种方式
- 方式一: new FileOutputStream(fileName); 该种方式,没有添加追加操作,这样创建的输出流对象,如果执行第二次的话,第二次写入的内容会把第一次写入的内容覆盖掉。
- 方式二: new FileOutputStream(fileName,true); 该种方式,添加了追加操作,这样创建的输出流对象,执行第二次的话,不会覆盖第一次写入的内容,会在后边进行追加内容。
* 将字符串转换为byte[]数组: byte[] bytes=String str.getBytes();
* 两种写入方式:
- 方式一:将bytes数组中的数据,全部写入 fos.write(bytes);
- 方式二 : 将bytes数组中的一部分写入 fos.write(bytes, 0, 5); 表示从数组bytes的下标0开始写入,写入长度为5.
* fos.flush(); 清空内存缓冲区数据,从而保证完整写入
* 代码:
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileOutputStreamTest01 {
public static void main(String[] args) {
//创建文件路径
String fileName="D:\\TestFile\\JavaTestFile\\FileOutputStreamTest01.txt"; //该文件不存在的话 会自动创建
//创建文件字节输出流
FileOutputStream fos=null;
try {
//创建输出流
//方式一 不添加追加操作 这样创建输出流对象,如果执行第二次的话,第二次写入的内容会把第一次写入的内容覆盖掉
//fos=new FileOutputStream(fileName);
//方式二 添加追加操作 这样创建输出流对象,执行第二次的话,不会覆盖第一次写入的内容,会在后边进行追加内容
fos=new FileOutputStream(fileName,true);
//开始写入字节流操作
//创建要写入的对象
String message="Hello World!";
//创建byte数组
byte[] bytes=new byte[message.length()];
//将字符串转换为byte数组
bytes=message.getBytes();
//开始写入
// 写入方式一: 将bytes数组中的数据,全部写入。
//fos.write(bytes); // Hello World!
//方式二 : 将bytes数组中的一部分写入 表示从下标0开始写入,写入长度为5.
fos.write(bytes,0,5); // Hello
//强制写入
fos.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if(fos!=null){
try {
System.out.println("写入成功");
//关闭流
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
Day16_97_IO_FileOutputStream 写入字节流的更多相关文章
- uniapp中拿到base64转blob对象,或base64转bytes字节数组,io操作写入字节流文件bytes
1. uniAPP中拿到附件的base64如何操作,如word文件 /*** 实现思路:* 通过native.js的io操作创建文件,拿到平台绝对路径* 再通过原生类进行base64解码,拿到字节流b ...
- File相关的读取和写入以及复制
import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileI ...
- 读取 java.nio.ByteBuffer 中的字符串(String) 写入方式flash.utils.ByteArray.writeUTF
通过研究ByteArray的写入格式以及方法说明,可以发现writeUTF是先使用2位写入字符串的长度,然后在其后写入字符串编码. flash.utils.ByteArray.writeUTF(val ...
- Java基础---IO(一)---IO流概述、字符流、字节流、流操作规律
第一讲 IO概述 概述 1.IO流:即InputOutput的缩写. 2.特点: 1)IO流用来处理设备间的数据传输. 2)Java对数据的操作是通过流的方式. 3)Java用于操作流的对象都 ...
- Struts的文件上传下载
Struts的文件上传下载 1.文件上传 Struts2的文件上传也是使用fileUpload的组件,这个组默认是集合在框架里面的.且是使用拦截器:<interceptor name=" ...
- JAVA的序列化和持久化的区别与联系
持久化(Persistence) 即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘).持久化的主要应用是将内存中的对象存储在关系型的数据库中,当然也可以存储在磁盘文件中.XML数据文 ...
- android SharedPreferences 存储对象
我们知道SharedPreferences只能保存简单类型的数据,例如,String.int等. 如果想用SharedPreferences存取更复杂的数据类型(类.图像等),就需要对这些数据进行编码 ...
- 【转】输入/输出流 - 深入理解Java中的流 (Stream)
基于流的数据读写,太抽象了,什么叫基于流,什么是流?Hadoop是Java语言写的,所以想理解好Hadoop的Streaming Data Access,还得从Java流机制入手.流机制也是JAVA及 ...
- 黑马程序员_Java基础:序列化(Serializable)与反序列化
------- android培训.java培训.期待与您交流! ---------- 在学习IO中的ObjectOutputStream和ObjectInputStream时,会涉及到序列化和反序列 ...
随机推荐
- 无法将“node.exe”项识别为 cmdlet、函数、脚本文件或可运行程序的名称
有些天没有启动前端项目,发现npm run dev,启动不了,经过一番查找发现问题所在 然后我查看了一下报错位置,发现并没有改动过什么 解决方法: 方法一: 检查一下npm目录: 这里发现少了node ...
- SpringBoot配置本地文件映射路径
1.前言 在springboot的项目中,如果需要通过项目方式访问本地磁盘的文件,不仅可以使用nginx代理的方式,还可以使用springboot配置的方式进行访问. 实例原因说明:由于上传的图片是要 ...
- 如何将IHttpHandler和IHttpModule迁移到ASP.NET Core中间件
ASP.NET Core是一个跨平台.开源的框架,用于在Windows.Mac和Linux操作系统(OS)上开发web应用程序.你可以使用以下任何IDE开发ASP.NET Core 应用程序: Vis ...
- Java基础语法:标识符
Java所有的组成部分都需要名字. 类名.变量名 以及方法名 都被称为标识符. 一.规则 Ⅰ.首字符 规则:所有的标识符都应该以字母(A-Z 或者 a-z).美元符($).下划线(_)开始. 示例:t ...
- dubbo实战之二:与SpringBoot集成
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- 测试平台系列(4) 使用Flask蓝图(blueprint)
使用Flask蓝图(blueprint) 回顾 先来看一下上一篇的作业吧,使用「logbook」的时候,遇到了时区不对的情况.那么我们怎么去解决这个问题呢? 实际上logbook默认采用的是世界标准时 ...
- 使用quartz.net 完成一个winform版的任务提醒工具
这个任务提醒工具是这样的,是每日定时执行,触发时间为 小时和分钟.每天早上来就可以把当天要做的添加到datagridview中,只记录了标题和内容和时间.双击dgv就查看内容. 如果每天计划重复,也可 ...
- (2)MySQL进阶篇SQL优化(show status、explain分析)
1.概述 在应用系统开发过程中,由于初期数据量小,开发人员写SQL语句时更重视功能上的实现,但是当应用系统正式上线后,随着生产数据量的急剧增长,很多SQL语句开始逐渐显露出性能问题,对生产环境的影响也 ...
- 妙味课上利用splice进行数组去重为什么要 j--
var arr = [ 1,2,2,4,4,5,8,8,9,0,4,4 ]; for ( var i=0; i<arr.length; i++ ) { for ( var j=i+1; j< ...
- VS2015上OpenCV-2.4.13安装与Hi35xx .jpg/.bmp格式转.bgr格式开发
因为Hi3559AV100后期深度学习开发需要用到.bgr格式的图片,而目前在手的一般为.jpg或.bmp格式的图片,下面随笔将给出基于OpenCV-2.4.13的格式转换,实现Hi35xx .jpg ...