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时,会涉及到序列化和反序列 ...
随机推荐
- 微信小程序:单选框radio和复选框CheckBox
单选框radio: 可以通过color属性来修改颜色. 复选框checkbox:
- SpringBoot Admin应用监控搭建
简介 Spring Boot Admin 用于监控基于 Spring Boot 的应用,它是在 Spring Boot Actuator 的基础上提供简洁的可视化 WEB UI. 参考手册地址:htt ...
- mysql索引的性能分析
[前言]上一篇博客介绍了InnoDB引擎的索引机制,主要围绕B+树的建立,目录项记录里主键和页号,到页目录下的二分法定位数据:二级索引里的主键和索引列,及其回表操作.这一篇分析一下索引的性能,围绕如何 ...
- 图文详解:阿里宠儿【小兔】RabbitMQ的养成攻略
- 网络地址转换NAT的两种模式(概念浅析)& IP溯源
由于全球IPv4地址越来越少.越来越贵,因此大到一个组织,小到一个家庭一个人都很难获得公网IP地址,所以只能使用内网地址,从而和别人共享一个公网IP地址.在这种情况下,NAT技术诞生. 翻译 NAT( ...
- SpringMVC-01 什么是SpringMVC
SpringMVC-01 什么是SpringMVC 回顾MVC 1.什么是MVC MVC是模型(Model).视图(View).控制器(Controller)的简写,是一种软件设计规范. 是将业务逻辑 ...
- Web微信协议
[文档]Web微信协议 1.登录 1.1 获取uuid(get) 请求 https://login.wx.qq.com/jslogin?appid=wx782c26e4c19acffb&red ...
- AtCoder Beginner Contest 187
A Large Digits int n; int main() { IOS; int a, b, resa = 0, resb = 0; cin >> a >> b; whi ...
- 强制断开ssh连接出现ssh崩溃问题
出现原因 finalshell意外终止,导致ssh连接意外终止 之后怎么都连不上虚拟机的ssh,一看是虚拟机的ssh已经被意外暂停,可能是跟finalshell的意外终止有关 解决 chmod 600 ...
- 如何选择 WebClient,HttpClient,HttpWebRequest
当我们在用 .NET 调用 RestAPI 时通常有三种选择,分别为:WebClient, HttpWebRequest,HttpClient,这篇文章我们将会讨论如何使用这三种方式去调用 RestA ...