IO流: 用于读写文件中的数据(能够读写文件,或网路中的数据) 那们今日咱们就来了解一下其间的字节省

  • [1]
    IO---字节省

FileOutputStream:

操作本地文件的字节输出流,能够把程序的数据写到本地文件中.

书写步骤:

1.创立字节省输出目标

FileOutputStream fis = new FileOutputStream("C:Users86187IdeaProjectsIO.idea");
引号中也能够传递一个File目标

其间创立的时分会报错,直接alt enter抛出异常就行了

假如文件不存在会创立一个新的文件,但是要保证父级途径是存在的

假如文件已经存在则会清空文件

2.写数据

fis.write(97);
写出为a

write办法的参数是整数,但实际上写到本地文件中的是整数在ASCLL对应的字符

3.开释资源:

fis.close();

假如不开释资源的话那么文件就会一向被占用,那么从资源管理器那儿就会显示文件处于打开状况.

所以每次使用完流之后都要开释资源

IO---字节省

对于写入数据,一次传一个太麻烦了,而传入一个字节省数组会快很多

FileOutputStream fis = new FileOutputStream("C:Users86187IdeaProjectsIO.ideaaa");
String s="zhangsanhaoshuai";
byte[] bytes = s.getBytes();
fis.write(bytes);
fis.close();

由于writer要传入的是整型的数据,那么要将字符串改为数组用getbytes办法转化

对于第三种办法是数组的部分传入,其间的off代表获取的起始索引,len代表传入的长度

换行和续写 在传入的时分默许是不会换行的,而咱们能够在传入字符串的时分传入rn,就能够到达换行的要求了

String s="zhangsanrnhaoshuai";

在咱们每次调用输出流的时分都是创立一个新的或许覆盖原来的,那么咱们怎样才干续写呢?

在创立的时分,传递参数中

IO---字节省
第一个是File途径,却第二个是个false

IO---字节省
深一步的了解就知道第二个是续写的开关当咱们只传递途径的时分,默许第二个就是false 要想续写要自己手动传入true

FileInputStream

IO---字节省

FileInputStream fis = new FileInputStream("C:Users86187IdeaProjectsIO.ideaaa");
System.out.println((char)fis.read());
fis.close();

其间传递途径的时分途径必定要是存在的,应为输入流只读,假如不存在还创立的话,读一个空文件又有什么意义呢?

而read办法就想之前学的迭代器中next相同,只读一个然后跳到下一个只不过它传递的是int类型的(字符串的ASCLL表中对应的)咱们还得用强转才干打印哦,到了文件末尾了回来的是-1 那么咱们就能够遍历文件的内容了

int b;
while ((b=fis.read())!=-1){
    System.out.print((char)b);
}

一次读一个仍是很麻烦所以这个也能够一次读一个数组

这样读入的速度就会快很多了

int b;
byte[] bytes = new byte[1];
while ((b=fis.read(bytes))!=-1){
    String s=new String(bytes);
    System.out.print(s);
}

在new string中传递bytes是把它转为字符串