File/io

21 篇文章 0 订阅
3 篇文章 0 订阅

File类
exists()判断是否存在文件目录
isFile()是否是文件
isDirectory()判断是否为目录
String getAbsolutePath( )返回绝对路径
String getPath( )返回相对路径
getName()f返回文件名
createNewFile()创建空文件
length()返回文件大小
以下代码演示:操作

public class MyFileTest {
    public static void main(String[] args)throws Exception {
        File file=new File("D:/helloo.txt");
        if (file.exists()){
            System.out.println("已存在");
        }else {
                file.createNewFile();

            System.out.println("文件名称" + file.getName());
            System.out.println("文件路径" + file.getAbsolutePath());
            System.out.println("文件大小" + file.length());
            System.out.println("是否是文件" + (file.isFile() ? "是" : "否"));
            System.out.println("是否是目录" + (file.isDirectory() ? "是" : "否"));
        }
    }
}

在这里插入图片描述
流:
字符流
Writer输出流
write(String str)
write(String str,int off,int len)
void close()
void flush()
Reader输入流
int read( )
int read(byte[] c)
read(char[] c,int off,int len)
void close( )
字节流
OutputStream输出流
void write(int c)写入
void write(byte[] buf)
void write(byte[] b,int off,int len)
void close( )关闭
构造方法
FileOutputStream (File file)
FileOutputStream(String name)
FileOutputStream(String name,boolean append)写入内容师父会覆盖之前内容 boolean值

InputStream输入流
int read( )读取
int read(byte[] b)
int read(byte[] b,int off,int len)
void close( )关闭流
int available()返回长度

输入与输出
输出

import java.io.FileOutputStream;
import java.io.OutputStream;

public class OutputStreamTest {
    public static void main(String[] args)throws Exception {
        String str="大家好,我叫张三丰";
        OutputStream os=new FileOutputStream("D:/name.txt");
        byte[]bytes=str.getBytes();
        os.write(bytes,0,bytes.length);
        os.close();
    }
}

操作时应该捕捉异常,这里作为练习声明了异常
把字符串放到数组里
然后循环写入
写入对象为数组,从0开始一直写到最大长度结束
关闭流

在这里插入图片描述
输入

public class InputStreamTest {
    public static void main(String[] args)throws Exception {
        File file=new File("D:rbw.txt");
        if (file.exists()){
            System.out.println("已存在");
        }else {
           file.createNewFile();
        }
        InputStream is=new FileInputStream(file);
        int b=0;
        System.out.println(is.available());//大小
        while ((b=is.read())!=-1){
            System.out.println((char)b);
        }
        is.close();
    }
}

在这里插入图片描述
把这段字母读取到控制台中
用InputStream输入流
在这里插入图片描述
完成复制的操作:

public class CopeFile {
    public static void main(String[] args) throws Exception {
        InputStream is = new FileInputStream("d:/hello.txt");
        OutputStream os = new FileOutputStream("c:/abc.txt");
        int b = 0;
        while ((b = is.read()) != -1) {
            os.write(b);
        }
        os.close();
        is.close();
    }
}

声明两个流
输入流InputStream
输出流OutputStream
while循环读取后再循环写入
最后关闭两个流

处理流
就是使原本的流效率更高

public class TestBufferedStream {
    public static void main(String[] args)throws Exception {
        FileReader reader=new FileReader("e:/dog.txt");
        BufferedReader br=new BufferedReader(reader);
        String str=null;
        int num=0;
        while ((str=br.readLine())!=null){
            System.out.println(str);
            num++;
        }
        br.close();
        reader.close();
        System.out.println(num);


    }
}

声明BufferedReader的时候把reader套进去
reader是按字符一个一个读的
而BufferedReader流的读取方法
是按行数读取的效率更高

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值