Java基础-----IO流
文章目录
一、IO流
1.1、IO流的简介
1.2、输入和输出
1.3、数据源
1.4、流的概念
1.5、Java中四大IO抽象类
1.6、Java中流概念细分
1.7、流的体系
二、流的入门案例
2.1、第一个IO流程序
package wr.oyc;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
public class demo1 {
public static void main(String[] args) throws IOException {
FileInputStream fileInputStream = null ;
try{
fileInputStream = new FileInputStream("d:/a.txt");
int s1 = fileInputStream.read() ;
System.out.println(s1);
}catch (FileNotFoundException e){
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
if(fileInputStream!=null){
fileInputStream.close();
}
}
}
}
2.1.1、改造第一个IO流程序
因为每一次使用read()获取很麻烦
所以接下来改造以下
package wr.oyc;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
public class Demo2 {
public static void main(String[] args) throws IOException {
FileInputStream fileInputStream = null ;
StringBuffer stringBuffer = null ;
try{
fileInputStream = new FileInputStream("d:/a.txt");
stringBuffer = new StringBuffer();
int temp = 0 ;
// 使用循环解决
// 我们知道read()获取不到数据会返回-1
while( (temp =fileInputStream.read())!=-1){
stringBuffer.append(temp + ",");
}
}catch (FileNotFoundException e){
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
System.out.println(stringBuffer);
if(fileInputStream!=null){
fileInputStream.close();
}
}
}
}
三、File类
3.1、File类的作用
3.2、File类操作
3.2.1、针对文件操作的方法
3.2.2、针对目录操作的方法
3.2.3、File类的基本使用
package wr.oyc.fileclass;
import java.io.File;
import java.io.IOException;
public class File01 {
public static void main(String[] args) throws IOException {
File file = new File("d:/g.txt");
//创建File对象
file.createNewFile();
System.out.println( file.exists() );
//判断文件是否存在
System.out.println( file.getName());
//获取文件名
System.out.println(file.isFile());
System.out.println(file.isHidden());
//判断可执行文件
System.out.println(file.canExecute());
//判断文件是否可读
System.out.println(file.canRead());
//判断文件是否可写
System.out.println(file.canWrite());
// System.out.println(file.delete());
//删除文件
file.delete();
file = new File("d:/g.txt");
System.out.println(file.isFile());
}
}
package wr.oyc.fileclass;
import java.io.File;
public class File02 {
public static void main(String[] args) {
File file = new File("d:/f");
//创建文件夹
// file.mkdir();
//查询目录存不存在
// System.out.println(file.exists());
//如果file不是目录就创建这个目录
// if(!file.isDirectory()){
// file.mkdir();
// }
//获取父级的目录
System.out.println( file.getParentFile() );
//返回一个字符串数组
System.out.println(file.list());
//返回一个File数组
System.out.println(file.listFiles());
}
}
四、常用流对象
4.1、文件字节流
4.1.1、文件字节输入流
package wr.oyc;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
public class Demo2 {
public static void main(String[] args) throws IOException {
FileInputStream fileInputStream = null ;
StringBuffer stringBuffer = null ;
try{
fileInputStream = new FileInputStream("d:/f.txt");
stringBuffer = new StringBuffer();
int temp = 0 ;
// 使用循环解决
// 我们知道read()获取不到数据会返回-1
while( (temp =fileInputStream.read())!=-1){
stringBuffer.append(temp + ",");
}
}catch (FileNotFoundException e){
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
System.out.println(stringBuffer);
if(fileInputStream!=null){
fileInputStream.close();
}
}
}
}
4.1.2、文件字节输出流
但是这样做,很消耗时间,也很慢的,所以怎么解决?
4.1.3、通过缓冲区提高读写效率(解决4.2中问题)
4.1.3.1、方式一
4.1.3.2、方式二
4.1.4、通过字节流缓冲提高读写效率(解决4.2中问题)
4.1.5、定义文件拷贝工具类
4.2、文件字符流
4.2.1、文件字符输入流
4.2.2、文件字符输出流
4.2.2、使用文件字符流拷贝文件
4.3、字符缓冲流
4.3.1、字符输入缓冲流
4.3.2、字符输出缓冲流
4.3.3、使用字符缓冲流实现文件拷贝
4.3.4、使用字符缓冲流实现文件内容添加行号
4.3、转换流
4.3.1、通过转换流实现输入屏幕输出
4.3.2、通过字节流读取文本文件并添加行号
4.4、字符输出流
4.6、字节数组流
4.6.1、字节数组输入流
4.6.2、字节数组输出流
4.7、数据流
4.7.1、数据输出流
4.7.2、数据输入流
4.8、对象流
4.8.1、Java对象的序列化和反序列化
4.8.2、序列化设计的类和接口
4.8.3、操作基本数据类型
4.8.4、操作对象
4.9、随机访问流
五、File类在IO中的作用
六、Apache IO包
6.1、FileUtils的使用
6.2、IoUtils的使用
七、本章总结
版权声明:本文为qq_48788523原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。