Java中的输入输出处理(一)

文件

文件:文件是放在一起的数据的集合。比如1.TXT。

存储地方:文件一般存储在硬盘,CD里······比如D盘

如何访问文件属性:我们可以通过java.io.File类对其处理

File类

常用方法:

方法名称说明
boolean exists()判断文件或目录是否存在
boolean isFile()判断是否是文件
boolean isDirectory()判断是否是目录
String getPath()返回此对象表示的文件的相对路径名
String getAbsolutePath()返回此对象表示的文件的绝对路径名
String getName()返回此对象表示的文件或目录名称
boolean createNewFile()创建新文件,不创建目录
boolean delete()删除此对象指定的文件或目录
long length()返回文件的长度,单位为字节,如果文件不存在,则返回0L
package 面向对象.文件的输入与输出;

import java.io.File;

public class Test {
    public static void main(String[] args) {
        File file = new File("C:\\Java\\a.txt");
//        create(new File("C:\\\\Java\\\\a.txt"));
//        create(file);
//        delete(file);
        show(file);
    }

    public static void create(File myfile) {
        if (!myfile.exists()) {
            try {
                myfile.createNewFile();
                System.out.println("文件创建成功");
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

    public static void delete(File myfile) {
        if (myfile.exists()) {
            myfile.delete();
            System.out.println("文件删除成功");
        } else {
            System.out.println("文件不存在");
        }
    }

    public static void show(File myfile) {
        if (myfile.exists()) {
            System.out.println("文件名:" + myfile.getName());
            System.out.println("相对路径:" + myfile.getPath());
            System.out.println("绝对路径" + myfile.getAbsolutePath());
            System.out.println("文件大小:" + myfile.length() + "字节");
            System.out.println("是否为目录(文件夹):" + myfile.isDirectory());
            System.out.println("是否为文件:" + myfile.isFile());
        } else {
            System.out.println("文件不存在");
        }
    }
}

读写文件

在Java中,输入和输出处理通常通过使用输入流和输出流来完成。Java提供了许多类和方法来处理输入和输出操作。

流是一组有序的数据序列,是遵循先进先出方式发送信息的通道。
在Java中,文件的读取和写入分别使用不同的流。
在这里插入图片描述
在这里插入图片描述

文件读取(输入)使用的流:

FileInputStream:用于从文件中读取字节数据

FileReader:用于从文件中读取字符数据
BufferedReader:用于读取文本文件中的行数据,并提供缓冲功能,以提高读取效率。

文件写入(输出)使用的流:

FileOutputStream:用于向文件中写入字节数据

FileWriter:用于向文件中写入字符数据
BufferedWriter:用于向文本文件中写入行数据,并提供缓冲功能,以提高写入效率。

字节输入流(读)InputStream抽象基类:

常用方法说明
int read()从输入流中读取一个字节并返回。如果已经到达流的末尾,则返回-1。
int read(byte[] b)从输入流中读取多个字节,并将读取的内容存储在给定的字节数组b中。返回实际读取的字节数。如果已经到达流的末尾,则返回-1。
int read(byte[] b, int off, int len)从输入流中读取最多len个字节,并将读取的内容存储在给定的字节数组b中,从偏移量off开始。返回实际读取的字节数。如果已经到达流的末尾,则返回-1。
long skip(long n)跳过输入流中的n个字节。返回实际跳过的字节数。
int available()返回可以从输入流中读取的字节数,而不会被阻塞。
void close()关闭输入流,并释放与之关联的任何系统资源。

子类FileInputStream常用的构造方法

  • FileInputStream(File file)
  • FileInputStream(String name)
    在这里插入图片描述
//字节输入流 InputStream
        FileInputStream fis = null;
        File myfile = new File("C:\\Java\\a.txt");
        try {
//            fis = new FileInputStream("C:\\Java\\a.txt");
            fis = new FileInputStream(myfile);
            int data;
            System.out.println("可读取的字节数是:" + fis.available());
            while ((data = fis.read()) != -1) {
                System.out.println((char) data);
            }

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                fis.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

###OutputStream 抽象基类写文本文件
当使用Markdown表格来描述OutputStream类的常用方法时,可以按照以下格式进行编写:

方法描述
write(byte[] b)将指定的字节数组写入输出流。
write(byte[] b, int off, int len)将指定字节数组的一部分写入输出流。
write(int b)将指定的字节写入输出流。
flush()刷新输出流,将缓冲区中的数据立即写入目标设备。
close()关闭输出流并释放与其关联的任何系统资源。

子类FileOutputStream常用的构造方法
FileOutputStream (File file)
FileOutputStream(String name)
FileOutputStream(String name,boolean append)
在这里插入图片描述

//写入C:\Java\a.txt中
    public static void testOutputStream() throws IOException {
        //字节输出流 写OutputStream
        FileOutputStream fos = null;
        String str = "hello world";
        fos = new FileOutputStream("C:\\Java\\a.txt");
        byte[] bytes = str.getBytes();
        fos.write(bytes);
        System.out.println("文件写入成功");
        fos.close();//释放资源

    }

两个结合一下

    //读取C:\Java\a.txt中的内容,然后写C:\Java\a2.txt中
    public static void testReader() throws Exception {
        File file = new File("C:\\Java\\a.txt");
        FileReader fr = new FileReader(file);
        int data;
        while ((data = fr.read()) != -1) {
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

分才

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值