一,概述
1,IO流概念:
I:input,输入,即把硬盘中的数据读取到内存中使用,也叫读取;
O:output,输出,把内存中的数据写入到硬盘当中保存,也就写入;
流:即数据(字符、字节),1字符=2字节,1字节=8位。
2,一切皆字节。一切文件数据(文本、图片、视频等)在存储时,都是以二进制数字的形式保存,都一个一个的字节,那么传输时一样如此。所以,字节流可以传输任意文件数据。在操作流的时候,我们要时刻明确,无论使用什么样的流对象,底层传输的始终为二进制数据。
二,字节输出流OutputStream
java.io.OutputStream:字节输出流,此抽象类是表示输出字节流的所有类的超类。
子类共有的成员方法:
1,public void close():关闭输出流,释放系统资源。
2,public void flush():刷新此输出流并强制任何缓冲的输出字节被写出。
3,public void write(byte[] b):将b.length字节从指定字节数组写入此输出流。可一次写多个字节:如果第一个字节是正数(0-127),则显示的时候会查询ASCII表;如果是负数,则会两个字节组成一个中文字符进行显示,查询系统默认码表(GBK)。
4,public void write(byte[] b,int off,int len):从指定字节数组写入len字节,从偏移量off开始输出到此输出流。
5,public abstract void write(int b):将指定的字节输出流。
三,实现类FileOutputStream
java.io.FileOutputStream extends OutputStream,此类为文件文件字节输出流。
作用:把内存中的数据写入到硬盘的文件中。
构造方法:
1,FileOutputStream(String name):创建一个向具有指定名称的文件中写入数据的输出文件流。
2,FileOutputStream(File file):创建一个向指定file对象表示的文件中写入数据的输出文件流。
3,FileOutputStream(File file, boolean append) 创建文件输出流以写入由指定的 File对象表示的文件。
4,FileOutputStream(String name, boolean append) 创建文件输出流以指定的名称写入文件。
参数:
File file: 目的地是一个文件;
String name:目的地是一个文件的路径。
构造方法的作用:
1,创建一个FIleOutputStream对象;
2,会根据构造方法中传递的文件/文件路径,创建一个空文件;
3,会把FIleOutputStream对象指向创建的文件。
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Arrays;
public class DemoFileOutputStream {
public static void main(String[] args) throws IOException {
FileOutputStream fos = new FileOutputStream("D:\\IdealProjects\\demo\\src\\Month_05\\day5_16\\2.txt");
byte[] arr = {65,66,97,98};
fos.write(arr);//ABab
fos.write(100);//d
fos.write(arr,1,2);//Ba
byte[] bytes = {-29,-24,-28,-69,69};//殍浠E
fos.write(bytes);
byte[] bytes1 = "您好".getBytes();
System.out.println(Arrays.toString(bytes1));
//[-26, -126, -88, -27, -91, -67],UTF-8编码,1中文3字节
fos.write(bytes1);
fos.close();
}
}
追加写入/续写:
参数:
String name,File file:写入数据的目的地;
boolean append:追加写开关。
true:创建对象不会覆盖源文件,继续在末尾追加数据。
false:创建新文件,覆盖源文件。
换行符表示形式:
window:"\r\n";
linux:"/n";
mac:"/r"。
import java.io.FileOutputStream;
import java.io.IOException;
public class DemoFileOutputStreamAdd {
public static void main(String[] args) throws IOException {
FileOutputStream fos = new FileOutputStream("D:\\IdealProjects\\demo\\src\\Month_05\\day5_16\\2.txt",true);
for (int i = 0; i < 10; i++) {
fos.write("你好".getBytes());
fos.write("\r\n".getBytes());
}
}
}
转载:https://blog.csdn.net/weixin_43529573/article/details/106159053