IO流
2023-07-24 16:53:16 4 举报
AI智能生成
java学习总结
作者其他创作
大纲/内容
字节流
文件字节流
(FileInputStream)
(FileOutputStream)
(FileInputStream)
(FileOutputStream)
标准IO流操作流程:
1.创建IO流对象
2.读取IO流中的内容
3.释放资源
FileInputStream fis=null; //初始化局部变量赋值初始值为null
try {
fis = new FileInputStream("文件相对/绝对路径"); //1.创建输入流对象
byte[] buf=new byte[1024]; //自定义缓冲区数组长度
int len;//定义长度变量
while((len = fis.read(buf)) != -1){ //将读取到的长度先赋值给len变量再判断是否为-1,为-1时结束循环
String str = new String(buf,0,len); //将该字节数组转换成字符串(字节数组,偏移量,有效长度)
System.out.println(str); //输出该文件包含字节
}catch (Exception e) { //捕获最大的异常
throw new RuntimeException(e);
}finally {
try {
if(fis != null){ //文件不为空
fis.close();} //释放资源
} catch (IOException e) {
throw new RuntimeException(e);}}
1.创建IO流对象
2.读取IO流中的内容
3.释放资源
FileInputStream fis=null; //初始化局部变量赋值初始值为null
try {
fis = new FileInputStream("文件相对/绝对路径"); //1.创建输入流对象
byte[] buf=new byte[1024]; //自定义缓冲区数组长度
int len;//定义长度变量
while((len = fis.read(buf)) != -1){ //将读取到的长度先赋值给len变量再判断是否为-1,为-1时结束循环
String str = new String(buf,0,len); //将该字节数组转换成字符串(字节数组,偏移量,有效长度)
System.out.println(str); //输出该文件包含字节
}catch (Exception e) { //捕获最大的异常
throw new RuntimeException(e);
}finally {
try {
if(fis != null){ //文件不为空
fis.close();} //释放资源
} catch (IOException e) {
throw new RuntimeException(e);}}
一次读取缓冲区个字节,将读取到的内容放到字节数组中,
并返回每次读取到的字节个数,如果读到流的末尾返回-1
* 可以指定数组的偏移量和读取的字节个数
并返回每次读取到的字节个数,如果读到流的末尾返回-1
* 可以指定数组的偏移量和读取的字节个数
字节缓冲流
BufferedInputStream
BufferedOutputStream
BufferedInputStream
BufferedOutputStream
只需要在字节流基础上包装一下
FileInputStream fis=new FileInputStream(file1);
BufferedInputStream bis=new BufferedInputStream(fis);//包装成缓冲输入流
FileOutputStream fos=new FileOutputStream(file2);
BufferedOutputStream bos=new BufferedOutputStream(fos)//包装成缓冲输出流
BufferedInputStream bis=new BufferedInputStream(fis);//包装成缓冲输入流
FileOutputStream fos=new FileOutputStream(file2);
BufferedOutputStream bos=new BufferedOutputStream(fos)//包装成缓冲输出流
对象字节流
ObjectOutputStream
ObjectInputStream
ObjectOutputStream
ObjectInputStream
字节缓冲流文件拷贝(效率更高)
字符流
文件字符流
FileReader
FileWriter
FileReader
FileWriter
字符缓冲流
BufferedReader
BufferedWriter
BufferedReader
BufferedWriter
readline()方法一次读一行内容
转换流
InputStreamReader
OutputStreamWriter
InputStreamReader
OutputStreamWriter
IO流细节:(特别注意使用IO流都需要序列化,在对象类中实现Serializable接口)
1.在使用输出流写出内容的时候,如果文件不存在则会自动创建,但要保证其父目录存在
2.在使用输出流时可以指定是否可追加的参数,如果设置为true,就会在原有的文件内容上追加
FileOutputStream fos=new FileOutputStream("相对/绝对路径",true);
3.如果将IO流对象在try结构中创建,那么它会自动关闭流资源,不需要手动关闭,也不需要手动刷新缓冲区
1.在使用输出流写出内容的时候,如果文件不存在则会自动创建,但要保证其父目录存在
2.在使用输出流时可以指定是否可追加的参数,如果设置为true,就会在原有的文件内容上追加
FileOutputStream fos=new FileOutputStream("相对/绝对路径",true);
3.如果将IO流对象在try结构中创建,那么它会自动关闭流资源,不需要手动关闭,也不需要手动刷新缓冲区
推荐使用
0 条评论
下一页