Java日志第36天 2020.8.10
IO
java.io.outputStream:字节输出流
此抽象类是表示输出字节流的所有类的超类
定义了一些子类共性的成员方法:
- public void close():关闭此输出流并释放与此流相关联的任何系统资源
- public void flush():刷新此输出流并强制任何缓冲的输出字节被写出
- public void write(byte[] b):将b.length字节从指定的字节数组写入此输出流
- public void write(byte[] b, int off, int len):从指定的字节数组写入len字节,从偏移量off开始输出到此输出流
- public abstract void write(int b):将指定的字节输出流
java.io.FileOutputStream extends OutputStream
FileOutputStream:文件字节输出流
构造方法
FileOutputStream(String name):创建一个向具有指定名称的文件中写入数据的输出文件流
FileOutputStream(File file):创建一个向指定File对象表示的文件中写入数据的文件输出流
import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; public class Demo01OutputStream { public static void main(String[] args) throws IOException { FileOutputStream fos = new FileOutputStream("E:\\Java\\Practice\\src\\Practice\\demo15\\a.txt"); fos.write(97);//a fos.close(); /* public void write(byte[] b):将b.length字节从指定的字节数组写入此输出流 如果第一个字节是正数(0-127),那么显示的时候会查询ASCII表 如果第一个字节是负数,那第一个字节会和第二个字节组成一个中文显示,查询系统的默认码表(GBK) */ FileOutputStream fos2 = new FileOutputStream("E:\\Java\\Practice\\src\\Practice\\demo15\\b.txt"); byte[] b = {65, 66, 67, 68, 69}; byte[] b2 = {-65, -66, -67, 68, 69}; fos2.write(b); fos2.write(b2); fos2.close(); /* public void write(byte[] b, int off, int len) 从指定的字节数组写入len字节,从偏移量off开始输出到此输出流 */ FileOutputStream fos3 = new FileOutputStream("E:\\Java\\Practice\\src\\Practice\\demo15\\c.txt"); fos3.write(b, 1, 2); /* 写入字符的方法 使用String类中的方法把字符串转换为字节数组 byte[] geyBytes() 把字符串转换为字节数组 */ byte[] bytes = "你好".getBytes(); System.out.println(Arrays.toString(bytes)); fos3.write(bytes); fos3.close(); } }
*笔记本打开文件时,都会查询编码表,把字节转换为字符表示
数据的追加续写与换行
续写使用两个参数的构造方法:
- FileOutputStream(String name, boolean append)创建一个向具有指定name的文件中写入数据的输出文件流
- FileOutputStream(File file, boolean append)创建一个向指定File对象表示的文件中写入数据的文件输出流
参数:
boolean append:追加写开关
如果是true:创建对象不会覆盖源文件,继续在文件的末尾追加写数据
如果是false:创建一个新文件,覆盖源文件
换行需要用换行符:
Windows:\r\n
import java.io.FileOutputStream; import java.io.IOException; public class Demo01OutputStream { public static void main(String[] args) throws IOException { FileOutputStream fos = new FileOutputStream("E:\\Java\\Practice\\src\\Practice\\demo15\\a.txt",true); for (int i = 0; i < 10; i++) { fos.write("你好".getBytes()); fos.write("\r\n".getBytes()); } fos.close(); } }
明日任务:字节输入流的学习
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南