第一部分:BufferWriter,BufferReaser基本操作
在学习过FileReader与fileWhiter后 发现此方法对字节流的操作效率低 原因是不断的在读写操作
现在引进缓冲区,在字节达到一定的数量后一次写入 ,减小了硬盘的写入次数以下是代码的实现过程
import java.io.*;
class BufferWriterDemo //缓冲区的写操作
{
public static void main(String[] args) throws IOException
{
//创建一个字符流写入对象
FileWriter fw = new FileWriter("buf.txt");
//为提高效率 创建缓存区
//将流对象作为参数传给缓冲区构造函数即可
BufferedWriter bufw = new BufferedWriter(fw);
for(int x =1;x<5;x++)
{
bufw.write("abcd"+x);
bufw.newLine();
bufw.flush();
}
//要用到缓冲区必须要刷新
bufw.flush();
//关闭缓冲区就是关闭流对象
bufw.close();
}
}
------------------------------------------------------------------------------------------
import java.io.*;
class BufferReaderDemo //缓冲区的读操作
{
public static void main(String[] args) throws IOException
{
//创建一个字符流读入对象
FileReader fr = new FileReader("buf.txt");
//为提高效率 创建缓存区
//将流对象作为参数传给缓冲区构造函数即可
BufferedReader bufr = new BufferedReader(fr);
String line = null;
while((line=bufr.readLine())!=null)
{
System.out.println(line);
}
//关闭缓冲区
bufr.close();
}
}
第二部分:字节流的操作
字节流操作与字符流类似
代码实现
import java.io.*;
class Filestream
{
public static void main(String[] args) throws IOException
{
//writerFile();
readFile();
}
//读取函数
public static void readFile() throws IOException
{
FileInputStream fos = new FileInputStream("fos.txt");
byte buf[] = new byte[1024];
int len = 0;
while((len=fos.read(buf))!=-1)
{
System.out.println(new String(buf,0,len));
}
fos.close();
}
//写入函数
public static void writerFile()throws IOException
{
FileOutputStream fos = new FileOutputStream("fos.txt");
fos.write("abcde".getBytes());
//关闭缓冲区
fos.close();
}
}
第三部分:文件的操作
概述
import java.io.*;
class fileDemo
{
public static void main()
{
method();
}
//创建file对象
public static void method()
{
//将file.txt转换成file对象,可以将已有的文件和未出现的
//文件封装成对象
File f1 = new File("file.txt");
//后者为前者子目录或者内容
File f2 = new File("c:\\avc","file.txt");
//创建一个file对象 将fff.txt放在d下面
File d = new File("c.txt");
File f3 = new File(d,"fff.txt");
sop(f1);
sop(f2);
sop(f3);
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}
文件的创建 删除 判断 获取
1创建:
boolean creatNewFile( ) 在指定位置上创建,如果以及存在则不创建,返回false 和输出流不一样 如果以及存在则覆盖
boolean mkdir( ) 创建文件夹
boolean mkdirs( ) 创建多级文件夹
2删除boolean delete( )
void deleteOnExit( ) 退出的时候删除
3 判断(必须先创建 creatNewFile mkdir )
isDirectory( )判断是否是目录
isFile( )判断是否是文件
isAbsolute()判断绝对路径相对路径
4获取
getName()获取名字
getPath()路径
getParent() 返回绝对路径下的父目录 如果返回的是相对路径则返回空 如果相对路径有上一层目录 则返回上一层目录
getAbsolutePath() 绝对路径
lastModified() 最后一次修改的时间
lenth() 长度