博客主页 😶
JAVA I/O学习 - DAY1
JAVA I/O学习 - DAY1

Author:

xuanSAMA

©

Wordage:

共计 4103 字

needs:

约 2 分钟

Popular:

276 ℃

Created:

目 录

IO的概念

JAVA中I/O代表输入(input)和输出(output)

Java中用“流(stream)”来抽象表示这么一个写入写出的功能,封装成一个“类”,都放在java.io这个包里面。
详细解析

I/O

文件和文件夹都是用File这个类来代表的

文件对象

import java.io.File;

/**
 * CreateFile
 */
public class CreateFile {

    public static void main(String[] args) {
        // 绝对路径
        File test = new File("F:/Study/xuanSAMA/Study/IO/test/HelloWorld.txt");
        System.out.println("文件创建成功!路径为:" + test.getAbsolutePath());
        // 相对路径
        File test1 = new File("test/HelloWorld.txt");
        System.out.println("文件创建成功!路径为:" + test1.getAbsolutePath());
        // 以某个路径作为父目录创建文件
        File test2 = new File("test","HelloWorld.txt");
        System.out.println("文件创建成功!路径为:" + test2.getAbsolutePath());
        // 仅仅是创建了这个对象,该对象在硬盘上不一定真正存在
    }
}

一些常用方法

基本的

import java.io.File;
import java.sql.Date;

public class IoMethod {
    public static void main(String[] args) {
        File test = new File("F:/Study/xuanSAMA/Study/IO/test/HelloWorld.txt");
        // 判断文件对象是否在硬盘上存在
        System.out.println(test.exists());
        // 判断文件对象是否是个文件
        System.out.println(test.isFile());
        // 判断文件对象是否是个文件夹
        System.out.println(test.isDirectory());
        // 获取文件的长度(字节)
        System.out.println(test.length());
        // 获取文件最后一次的修改时间
        System.out.println(new Date(test.lastModified()));
        // 设置文件最后一次修改时间(时间戳)
        test.setLastModified(0);
        System.out.println(new Date(test.lastModified()));
        // 文件重命名
        File toName = new File("F:/Study/xuanSAMA/Study/IO/test/Re.txt");
        test.renameTo(toName);
        System.out.println(test);
        // 可以发现test打印出来还是原本的,重命名只是改硬盘上文件的名称,对象不会受影响
    }   
}

更多的

import java.io.File;
import java.io.IOException;
import java.util.Arrays;

public class IoMethod1 {
    public static void main(String[] args) throws IOException {
        File test = new File("test/");
        // 以字符串数组的形式返回当前文件夹下的所有文件和文件夹(不包含子文件夹和子文件)
        System.out.println(Arrays.toString(test.list()));
        // 以文件数组的形式返回当前文件夹下所有文件(不包含子文件夹和子文件)
        System.out.println(Arrays.toString(test.listFiles()));
        File test1 = new File("test/Re.txt");
        // 以字符串的形式返回文件的所在目录(父级目录)
        System.out.println(test1.getParent());
        // 创建文件夹,如父文件夹不存在,则不创建
        File test2 = new File("test/test/test");
        System.out.println(test2.mkdir());
        // 创建文件夹,如父文件夹不存在,则创建父文件夹
        System.out.println(test2.mkdirs());
        File test3 = new File("new Folderio/HelloIO.txt");
        // 创建一个空文件,如父文件夹不存在,则抛出异常
        try {
            System.out.println(test3.createNewFile());
        } catch (IOException e) {
            System.out.println("父文件夹不存在!!");
        }
        // 所以创建一个文件之前就得用mkdirs创建文件夹
        test3.getParentFile().mkdirs();
        System.out.println(test3.createNewFile());
        // 列出所有盘符
        System.out.println(Arrays.toString(File.listRoots()));
        // 删除文件
        System.out.println(test3.delete());
        // JVM结束时删除文件,用于临时文件的创建
        test3.deleteOnExit();
    }
}

文件对象练习

一般说来操作系统都会安装在C盘,所以会有一个 C:\WINDOWS目录。

遍历这个目录下所有的文件(不用遍历子目录)

找出这些文件里,最大的和最小(非0)的那个文件,打印出他们的文件名

import java.io.File;

public class pratice {
    public static void main(String[] args) {
        File win = new File("C:/Windows");
        File[] fileArr = win.listFiles();
        long maxFile = 0;
        long minFile = 999999;
        File maxFile2 = new File("null"),minFile2 = new File("null");
        for (File file : fileArr) {
            if (file.length() > maxFile) {
                maxFile2 = file;
                maxFile = file.length();
            }
            if (file.length() < minFile & file.length() != 0) {
                minFile2 = file;
                minFile = file.length();
            }
        }
        System.out.printf("在windows中最大文件是%s最小的文件是%s",maxFile2.getName(),minFile2.getName());
    }
}
文章二维码
JAVA I/O学习 - DAY1
共计 0 条评论,点此发表评论
博客主页 流光博客 欢迎来到我的博客,我会在这里分享我的学习笔记,纪录一些生活。 51统计
萌ICP备20220869号 本站已运行 1 年 99 天 15 小时 28 分 自豪地使用 Typecho 建站,并搭配 MyDiary 主题 Copyright © 2022 ~ 2024. 流光博客 All rights reserved.
打赏图
打赏博主
欢迎
搜 索
足 迹
分 类
  • 📚 学习生涯
  • 📔 日常纪录
  • 🖥️ 软件分享
  • 🗂️ 杂项
  • 🖼️ 相册