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中,文件的读取和写入分别使用不同的流。
Java中的输入输出处理(一)_第1张图片
Java中的输入输出处理(一)_第2张图片

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

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)
    Java中的输入输出处理(一)_第3张图片
//字节输入流 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)
Java中的输入输出处理(一)_第4张图片

//写入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) {
        }
    }

你可能感兴趣的:(Java全栈工程师学习,#,Java开发,java,前端,java-rocketmq,c5全栈)