目录
一.关于IO流
二.字节流
1.FIleOutputStream(字节输出流)
1.书写步骤:
1.创建字节输出流对象
2.写数据
3.释放资源
2.书写数据的三种方式
3.换行写入数据:
4.续写
2.FileInputStream(字节输入流)
1.书写步骤
1.创建字节输入流的对象
2.读取数据
3.释放资源
2.循环读取
一.关于IO流
IO流:存储和读取数据的解决方案
i:input输入 o:output
IO流的作用;用于读写数据(本地文件,网络);
IO流的分类
纯文本文件:用windows系统自带的记事本打开并且人类能读懂的文件
例如txt文件,md文件,xml文件,lcr文件
注意:这里面的输入输出的主语是 程序
二.字节流
1.FIleOutputStream(字节输出流)
操作本地文件的字节输出流,可以把程序的数据写入本地文件中
1.书写步骤:
1.创建字节输出流对象
参数是字符串或者file对象都可以
如果文件不存在就会创建,但是要保证父类文件是存在的
如果文件已经存在,构造方法就会清空文件
2.写数据
write的方法是整数,实际上是会根据ASCII表进行转换
3.释放资源
每次使用完流都要进行释放资源
//创建对象
FileOutputStream fos=new FileOutputStream("a.txt");
//写入数据
fos.write(97);
//释放数据
fos.close();
2.书写数据的三种方式
FileOutputStream fos=new FileOutputStream("a.txt");
//写出数据
fos.write(99);
//释放资源
fos.close();
byte [] bytes={97,98,99,100};
FileOutputStream fos=new FileOutputStream("a.txt");
fos.write(bytes);
fos.close();
byte [] bytes={97,98,99,100,101,103};
FileOutputStream fos=new FileOutputStream("a.txt");
fos.write(bytes,0,3);
//参数表示: 数组 起始索引 写入的个数
fos.close();
3.换行写入数据:
想要换行只需要写一个换行符即可
windows操作系统:\r\n
linux操作系统:\n
Mac操作系统:\r
FileOutputStream fos=new FileOutputStream("a.txt");
//写出数据
String str1="wohaoshuai";
byte[] bytes1 = str1.getBytes();
fos.write(bytes1);
String str2="\r\n";
byte[] bytes2 = str2.getBytes();
fos.write(bytes2);
String str3="shangmianshuodedui";
byte[] bytes3 = str3.getBytes();
fos.write(bytes3);
fos.close();
4.续写
FileOutputStream有两个参数,第二个就是开关,true打开续写,false关闭续写
FileOutputStream fos=new FileOutputStream("a.txt",true);
//写出数据
String str1="wohaoshuai";
byte[] bytes1 = str1.getBytes();
fos.write(bytes1);
fos.write(10);
String str3="shangmianshuodedui";
byte[] bytes3 = str3.getBytes();
fos.write(bytes3);
fos.close();
2.FileInputStream(字节输入流)
1.书写步骤
1.创建字节输入流的对象
如果文件不存在,直接报错
2.读取数据
一次读一个字节,读取出来的数据是在ASCII上对应的数字
读到文件末尾了就会返回-1
3.释放资源
FileInputStream fis=new FileInputStream("a.txt");
int r1 = fis.read();
//如果没有数据读取则read的返回值是-1
System.out.println(r1);
fis.close();
2.循环读取
FileInputStream fis=new FileInputStream("a.txt");
int b=0;
while((b= fis.read())!=-1){
System.out.println((char)b);
}
fis.close();