字节流
java中可以通过io流对文件进行操作。
使用步骤:
//创建对象,""中填写的是文件的路径,如果没有文件自动新建
FileOutputStream fos = new FileOutputStream("./a.txt");
//写出数据,默认是ASCII码
fos.write(97);
//释放资源
fos.close();
要是想往文件中写入string类型可以如下
String str = "吃猫的鱼";
byte[] arr = str.getBytes(); //字符串转换成字节码在输入
//创建对象
FileOutputStream fos = new FileOutputStream("./a.txt");
//写出数据
fos.write(arr);
//释放资源
fos.close();
想要实现换行
String str = "吃猫的鱼";
String hhang = "\r\n";
String six = "666";
byte[] arr = str.getBytes();
byte[] hh = hhang.getBytes();
byte[] s6 = six.getBytes();
//创建对象
FileOutputStream fos = new FileOutputStream("./a.txt");
//写出数据
fos.write(arr);
fos.write(hh);
fos.write(s6);
//释放资源
fos.close();
操作后a.txt文件就变成了如图所示:
关于字节流实现对文件的续写
上面的代码都是新建对象,然后将文件进行清空然后将数据写入的操作,那么要是我们想要对文件进行续写该如何操作呢?
只需要在新建对象的时候传参一个true即可,默认是false,也就是不续写,传true过去后就是续写。
代码如下:
//创建对象
FileOutputStream fos = new FileOutputStream("./a.txt",true);
字节输入流
首先新建了一个a.txt文件,里面内容是abcde
//创建对象
FileInputStream fis = new FileInputStream("./a.txt");
//读取数据
int b1 = fis.read();
System.out.println(b1);
int b2 = fis.read();
System.out.println(b2);
int b3 = fis.read();
System.out.println(b3);
int b4 = fis.read();
System.out.println(b4);
int b5 = fis.read();
System.out.println(b5);
int b6 = fis.read();
System.out.println(b6);
//释放资源
fis.close();
执行输出结果为
97
98
99
100
101
-1
当读取数据到超过最后一位的时候,默认返回的是-1 。