【七】Java基础(06)---IO流

一.File 类的使用

1.file类的一个对象,代表一个文件或一个文件目录

2.file类声明在java.io包下

Public class FileTest{
/*
创建File类的实例
2.相对路径:
绝对路径:
*/
Public static void main(String[]a){

//构造器1
Filefile=newFile("hello.txt");//相对于当前的module
Filefile1=newFile("D:\\Android\\AndroidProjects\\app\\src\\main\\he.txt");

//构造器2
Filefile2=newFile("D:\\Android","AndroidProjects\\app\\src\\main\\he.txt");
//构造器3
Filefile3=newFile(file2,"hi.txt");
public static void main(String[] a){

//构造器1
File file=new File("hello.txt");//相对于当前的module
File file1=new File("D:\\Android\\AndroidProjects\\app\\src\\main\\he.txt");

System.out.println("获取绝对路径:"+file.getAbsoluteFile());
System.out.println("获取名字:"+file.getName());
System.out.println("获取路径:"+file.getPath());
System.out.println("获取父路径:"+file.getParent());
System.out.println("获取长度:"+file.length());
System.out.println("最近的修改时间:"+file.lastModified());
System.out.println("************");

System.out.println(file1.getAbsoluteFile());
System.out.println(file1.getName());
System.out.println(file1.getPath());
System.out.println(file1.getParent());
System.out.println(file1.length());
System.out.println(file1.lastModified());

File file2=new File("D:\\Android\\AndroidProjects\\app\\src\\main\\java\\com\\example");
String[] list=file2.list();
for(Strings:list){
System.out.println("获取目录下的所有文件和目录:"+s);
}
System.out.println("************************8");

File[] files=file2.listFiles();
for(File f:files){
System.out.println("获取文件的路径:"+f);
}
/*
public boolean renameTo(Filedest):把文件重命名为指定的文件路径
比如;file1.renameTo(File2)为例
要想保证返回true,需要file1在硬盘中存在的,且file2不能再硬盘中存在

1.public boolean  isDriectory():判断是否文件目录
2.public boolean isFile():判断是否是文件
3.public boolean exists():判断是否存在
4.public boolean canRead():判断是否可读
5.public boolean canWrite():判断是否可写
6.public boolean isHidden():判断是否隐藏

文件的创建方法
Public boolean creatNewFile(): 创建文件。若文件存在,则不创建,返回false
Public boolean mkdir():创建文件目录。如果此文件目录存在,则不创建,如果此文件目录的上层不存在也不创建
Pulbic boolean mkdirs():创建文件目录。如果此文件目录存在,则不创建,如果此文件目录的上层不存在,创建


删除文件
Public Boolean delete():删除文件或文件夹 (java中的删除不走回收站)

*/

}
}

二.IO流

IO 流简单的解释来说,就是程序与数据之间读写的通道

抽象类字节流字符流
输入流InputStreamReader
输出流OutputStream

Writer

1.流的分类

操作数据单位:字节流,字符流

数据的流向:输入流,输出流

流的角色:节点流, 处理流

抽象基类节点流(文件流)缓冲流(处理流的一种)
InputStreamFileInputStreamBufferedInputStream
OutputStreamFileOutputStreamBufferedOutputStream
ReaderFileReaderBufferedReader
WriterFileWriter

BufferedWriter

 <一>节点字符流

节点字符输入流 FileReader 无法copy 图片

结论

1.对于文本文件,txt java,c cpp使用字符流

2.对于非文本文件,jpg mp3 mp4 avi doc ppt 使用字节流

方式一:

public class FileReaderWriterTest{

public static void main(String[] a)throws IOException{
//1.实例化对象
File file=new File("D:\\Android\\AndroidProjects\\app\\src\\main\\java\\com\\example\\hello.txt");
//2.提供具体的流
FileReader fr=new FileReader(file);
//3.数据的读入
//read():返回一个读入的字符,如果达到文件的末尾,返回-1
int data=fr.read();
while(data!=-1){
System.out.print((char)data);
data=fr.read();
}
//4.关闭流
fr.close();

//异常说明,出现异常使用trycatchfinally关闭流防止资源占用
//读入的文件一定要存在,否则会报FileNotFoundException异常

}
}

方式二:

  FileReader fr =null;

        //1.Filel类的实例化
        try{

        File file = new File("hello.txt");

        if(!file.exists()){
            file.createNewFile();
            System.out.println("获取绝对路径:"+file.getAbsoluteFile());
        }


        //2.FileReader流的实例化
        fr = new FileReader(file);

        //3.读入操作
        //int len ;
        char[] cbuf =new char[50];

        while( fr.read(cbuf)!=-1){
            for(int i=0 ;i<fr.read(cbuf);i++){
            System.out.print(cbuf[i]);
            }
        }
        }catch(IOException e){
            e.printStackTrace();
        }finally {
            if(fr!=null) {
                try {
                    //4.资源关闭
                    fr.close();
                }catch(IOException e){
                    e.printStackTrace();
                }
            }
        }

        <二>节点字符输出流FileWriter

输出操作,对应File可以不存在,
如果不存在,在输出过程中,会自动创建文件
如果存在,FileWriter(file,true);就添加,如果是false就覆盖原有文件
*/

public static void main(String[]a)throws IOException{

//实例化File对象
File file=new File("hello1.txt");
//提供FileWriter的对象,用于数据的写出
FileWriter fw=new FileWriter(file,true);
//写入操作
fw.write("Ihaveadream!\n");
fw.write("youneedtohaveadream\n");
//关闭流资源
fw.close();

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值