存储和解决数据的方案
解释:i:input;o:output;流:像水流一样传输数据
分类

io流按照流向可以分为输入流和输出流:
输入流:程序到文件
输出流:文件到程序
io流按照操作文件的类型可以分为字节流和字符流:
字节流可以操作所有类型的文件,字符流只能操作纯文本文件
文件:保存数据的地方
纯文本文件:Windows自带的记事本打开能读懂

创建文件对象相关构造器和相关方法:
new File(String pathname) 根据路径创建一个File对象
new File(File parent,String child) 根据父目录文件+子路径构建
new File(String parent,String child) 根据父目录+子目录构建
字符输入流的用法和细节:
创建对象
细节1:参数是字符串表示的路径或者是File对象都是可以的
细节2:如果文件不存在,会创建一个新的空文件,但是要保证父级路径是存在的
细节3:如果文件已经存在,则会清空文件
写出数据
write方法的参数是整数,但是实际写的本地文件里的参数是整数在ASCII码表里对应的字符
释放资源
每次使用之后都要释放资源
FileOutputStream写数据的3种方式:

换行写和续写
换行:再次写一个换行符就可以,但是不同操作系统的换行符是不一样的,比如:
Windons:\r\n
Linx:\n:
Max:\r
细节:在Windns操作系统中,java对换行符做了优化,虽然完整的是\r\n,但是`我们写其中一个\r或者\n即可,因为JAVA在底层会补全,但是尽量不要省略写
续写:如果想要续写,打开续写开关即可,开关位置,续写对象的第二个参数,默认是false是关闭续写,只需写为true即可
-
FileOutputSteam的作用:可以把程序中的数据写到本地文件上,是字节流的基本流*
FileInputStream书写细节
1.创建字节输入流对象
如果文件不存在就直接报错2.读取数据
一次读一个字节,读出来的是数据在ASCII上对应的数字
读到文件末尾了,read方法返回-13.释放资源
字符输入流循环读取
字节输入流的用法和书写细节
1.创建字节输入流对象
FileInputStream fis = new FileInputStream(name:" ");
如果文件不存在就直接报错
那么java为什么会这么设计呢?
因为输出流不存在就创建(程序把数据写到文件中),输入流不存在就报错(文件把数据传递给程序)
2.读数据
一次读一个字节,读出来的是数据在ASCII上对应的数字
读到文件末尾了,read方法返回-1
int b1 = fis.read();
System.out.println(b1);
3.释放资源
fis.close();
read()方法是用来读取数据的,如果读不到了就会返回-1
FileInPutStream字节输入流的循环读取
1.创建对象
FileInputStream fis = new FileInputSteam(name:" ");
2.循环读取:
int b;
while((b = fis.read())! = -1){
System.out.println((char)b);
}
3.释放数据
fis.close();
文件拷贝
(选择一个比较小的文件)
1.创建一个对象
FileInputStream fis = new FileInputStream(name:" “);
FileOutputStream(name:” ");
2.拷贝:
int b;
while((b = fis.read())! =-1){
fos.write(b);
}
3.释放数据
规则:先开的后关闭
fos.close();
fis.close();
文件拷贝的弊端是速度比较慢,因为FileInputStream一次只读取一个字节,所以速度比较慢 下面是一次可以读取多个字节的方法:

FileInputStream fis = new FileInputStream(name:" ");
byte[] bytes = new byte[2];
int len = fis.read(bytes);
Sysatem.out.println(len);//2
String str = new String(bytes);
System.out.println(str);
fis.close();
下周计划
首先完成这次考核的内容:点菜系统,通过小组内算法比赛感觉自己的算法有很大的欠缺,还需要多多练习。
本文详细介绍了Java中的IO流,包括输入流和输出流的分类,字节流和字符流的区别,以及如何进行文件拷贝。字符输入流创建时可新建或清空文件,write方法按ASCII码写入字符。FileOutputStream支持换行写和续写,而FileInputStream用于读取文件,一次读取一个字节。文件拷贝过程中,利用循环读写实现,但效率较低,可优化为一次读取多个字节提高速度。

1196

被折叠的 条评论
为什么被折叠?



