一、File文件管理对象
创建文件对象: File file = new File( 文件路径 );
常用的文件管理方法:
boolean exists( ) 判断文件或目录是否存在
boolean isFile( ) 判断是否是文件
boolean isDirectory( ) 判断是否是目录
String getPath( ) 返回此对象表示的文件的相对路径名
String getAbsolutePath( ) 返回此对象表示的文件的绝对路径名
String getName( ) 返回此对象表示的文件或目录的名称
boolean delete( ) 删除此对象指定的文件或目录
boolean createNewFile( ) 创建名称的空文件,不创建文件夹
long length() 返回文件的长度,单位为字节, 如果文件不存在,则返回 0L
二、流分类
一、使用字节流读取数据和输出数据的步骤:
1、构造输入流文件对象 FileInputStream
FileInputStream fis=new FileInputStream(文件路径);
2、构造输出流文件对象 FileOutputStream
FileInputStream fis= new FileOutputStream("文件路径");
3、创建中转站数组,存放每次读取的内容
byte[] words=new byte[1024];
4、通过循环实现文件读取
while((fis.read())!=-1){
fis.read(words);
fos.write(words, 0, words.length);
}
5、关闭流
fos.close();
fis.close();
二、使用字符流读取数据输出到控制台:
1、利用字符流对象Reader进行构造文件
Reader fr=new FileReader(文件路径);
2、创建字符数组作为中转站
char ch[]=new char[1024];
sbf=new StringBuffer();
3、循环读取并追加字符
while ((fr.read(ch)!= -1)) {
sbf.append(ch);
length=fr.read();
}
4、输出数据以及关闭流
fr.close();
三、使用带有缓冲区的字符流读取数据输出到控制台
1、创建一个FileReader对象
FileReader fr=new FileReader(文件路径);
2、创建一个BufferedReader 对象,将文件对象进行构造成具有缓冲流的字符对象
BufferedReader br=new BufferedReader(fr);
3、循环读取内容保存在控制台中进行输出
String str="";
while( (str=br.readLine() ) !=null){
System.out.println(str);
str=br.readLine(); //循环读取内容保存在str中进行输出
}
4、关闭 流
br.close(); fr.close();
四、利用bufferReader和bufferedWrite进行读写内容数据
1、创建一个FileWriter 对象 和 BufferedWriter 对象
FileWriter fw=new FileWriter(文件路径);
BufferedWriter bw=new BufferedWriter(fw);
2、直接进行写入数据,刷新缓冲区
bw.write("数据写入");
bw.newLine();//创建新的一行
bw.flush();//刷新缓冲区
3、 创建文件读取对象FileReader 和 BufferedReader
FileReader fr=new FileReader(读取文件的路径);
BufferedReader br=new BufferedReader(fr);
4、循环读取内容保存在控制台中进行输出
String str="";
while( (str=br.readLine() ) !=null){
System.out.println(str);
str=br.readLine(); //循环读取内容保存在str中进行输出
}
5、关闭所有流
五、二进制读写文件 (复制文件效果哦)
1、创建输入输出流对象
FileInputStream fis = new FileInputStream(输入文件的路径);
DataInputStream dis = new DataInputStream(fis);
FileOutputStream outFile = new FileOutputStream(输出文件路径);
DataOutputStream out == new DataOutputStream(outFile);
2、读取文件并写入文件
int temp;
while ( (temp = dis.read()) != -1) {
out.write(temp);
}
3、关闭输入输出流
dis.close();
out.close();
注意:字节流和字符流的区别,字符流一般用来处理文字数据,字节流一般用于传输文件数据
BufferedReader带有缓冲流输入流
BufferedWrite带有缓冲的输入流
以上二者皆可用readLine()方法进行读取数据,使用write()方法进行写入数据,用flush()方法进行刷新