首页 > 编程语言 >木舟0基础学习Java的第十七天(File类使用,IO流)

木舟0基础学习Java的第十七天(File类使用,IO流)

时间:2024-07-16 09:55:51浏览次数:22  
标签:Java 木舟 IO System File println new txt out

 File类(路径):文件路径 文件夹路径

路径:

1.绝对路径 :固定的路径 从盘符开始

2.相对路径:相对于某个位置 指当前项目下

创建功能:

File f=new File("e:/a.txt");
        try {
            boolean b1 = f.createNewFile();//新建文件
            System.out.println(b1);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        System.out.println(f);//重写了toString()
     //根据一个目录和一个子文件(子目录)得到一个File对象 必须要有abc这个文件夹
        File f=new File("e:/abc","b.txt");
        try {
            boolean b = f.createNewFile();
            System.out.println(b);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        System.out.println(f);
    }
 //在e盘下创建一个ddd文件夹
        File f=new File("e:/ddd");
        boolean b = f.mkdir();//如果存在ddd文件夹就不创建 不存在就创建一个ddd文件夹
        System.out.println(b);//true

        File f1=new File(f,"ccc.txt");//在ddd文件夹下创建ccc文件
        try {
            boolean b1 = f1.createNewFile();
            System.out.println(b1);//true
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
 //创建一个含有子目录的目录
        File f=new File("e:/com/muzhou/test");
        boolean b = f.mkdirs();
        System.out.println(b);//true

重命名功能:

(注意:如果路径名相同就是改名 如果路径名不同就是改名并剪切-粘贴)

        File f=new File("e:/abc/a.txt");
        File newf=new File("e:/abc/aaa.txt");
        boolean b = f.renameTo(newf);//给文件重命名
        System.out.println(b);//true
        File f=new File("e:/abc");
        boolean b = f.renameTo(new File("e:/cba"));//给文件夹重命名
        System.out.println(b);//true

删除功能:

(注意:不走垃圾回收站 永久删除)

 File f=new File("e:/cba");
        //如果该目录下有子文件 要先删除子文件才能删除目录
        boolean b = f.delete();//删除目录
        System.out.println(b);//false

判断功能:

 File f=new File("e:/cba");
        System.out.println(f.isDirectory());//判断文件夹
        System.out.println(f.isFile());//判断文件

        File f1=new File("e:/a.txt");
        System.out.println(f1.exists());//是否存在
        System.out.println(f1.canRead());//是否可读
        System.out.println(f1.canWrite());//是否可写
        System.out.println(f1.isHidden());//是否隐藏

获取功能:

 //获取绝对路径(带盘符)
        File f1=new File("e:/cba/b.txt");
        String path = f1.getAbsolutePath();//获取绝对路径(带盘符)
        System.out.println("绝对路径"+path);//e:\cba\b.txt
        File f2=new File("ccc.txt");
        String p = f2.getAbsolutePath();
        System.out.println(p);//E:\job\IO7.12\ccc.txt


        System.out.println("相对路径"+f2.getPath());//ccc.txt 获取相对路径(不带盘符) 相对于当前项目所在的路径
        System.out.println("文件名"+f2.getName());//文件名ccc.txt
        System.out.println("文件的字节长度"+f1.length());//文件的字节长度8
        System.out.println("最后一次被修改的时间"+f1.lastModified());//最后一次被修改的时间1720834772391 毫秒值
        long time=f1.lastModified();
        Date d=new Date(time);
        System.out.println(d);//Sat Jul 13 09:39:32 CST 2024

获取数组:

  //获取指定目录下所有文件或者文件夹的名称数组
        File f=new File("e:/cba");
        String[] list = f.list();
        for (String s : list) {
            System.out.println(s);
        }
        //获取File数组
        File[] files=f.listFiles();
        for (File file : files) {
            System.out.println("获取文件的名称"+file.getName()+"获取文件最后一次被修改的时间"+
                    new Date(file.lastModified()));
        }

 开发中建议使用

  File f=new File("e:/cba");
        File[] files=f.listFiles();
        for(int i=0;i<files.length;i++){
            File ff=files[i];
            if(ff.getName().endsWith("txt")){
                System.out.println("文件名"+ff.getName()+"路径"+ff.getAbsolutePath());
            }
        }

递归:(自己调自己)不建议使用

 public static void main(String[] args) {
        File f=new File("e:/");
        getFile(f);
    }
    public static void getFile(File f){
        //用递归深入目录下多层子目录搜索文件
        File[] files=f.listFiles();
        for (int i = 0; i <files.length ; i++) {
            File ff=files[i];
            if(ff.isDirectory()){
                getFile(ff);//如果是目录就再进 getFile() 继续调用
            }else{
            //如果是文件
            if(ff.getName().endsWith("txt")){
                System.out.println("文件名"+ff.getName()+"路径"+ff.getAbsolutePath());
            }
            }
        }
    }

Windows系统  支持/ 也支持\

Linux系统 只支持/ 

开发中尽量用/ 即可跨平台

创建文件(文件夹)

如果不写盘符文件(夹)就会创建在项目下(相对路径)

IO流

概述:

1.IO 流用来处理设备之间的数据传输

2.Java 用于操作流的类都在IO包中

3.Java 对数据的操作是通过流的方式

流按流向分为两种:1.输入流 2.输出流 
流按操作类型分为两种:1.字节流 2.字符流

字节流:可以操作任何数据,在计算机中任何数据都是以字节的形式存储的

字符流:字符流只能操作字符(文本)数据 比较方便

IO流常用的父类

字节流的抽象父类:InputStream    OutputStream

字符流的抽象父类:Reader   Writer

注意:使用的时候处理异常

 public static void main(String[] args) {
        try {
            FileInputStream fi=new FileInputStream("e:/a.txt");
            int read = fi.read();
            
            System.out.println((char)read);//read()方法 每次读一个字节 会把字节byte类型提升为int类型

        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }

标签:Java,木舟,IO,System,File,println,new,txt,out
From: https://blog.csdn.net/tzh525/article/details/140369718

相关文章

  • optional
    作用:用来包装一个可能存在也可能不存在的值当存在时我们可以选择返回其中内容,不存在时返回空;代码示例:#include<iostream>#include<optional>#include<string>#include<fstream>std::optional<std::string>ReadFileAsString(conststd::string&filepath){std::i......
  • Regularized Stochastic Learning and Online Optimization
    目录概符号说明MotivationFOBOS(Forward-BackwardSplitting)RDA(RegularizedDualAveraging)FTRL-Proximal(FollowTheRegularizedLeader)FOBOS,RDA,FTRL-Proximal的统一表示[1]DuchiJ.andSingerY.EfficientLearningusingForward-BackwardSplitting.NeurIP......
  • 在JavaScript中,如何实现异步编程?
    在JavaScript中,如何实现异步编程?请列举几种常见的方法(如Promise、async/await)。在JavaScript中,异步编程是处理长时间运行的任务(如网络请求、文件读写、大量计算等)的关键。JavaScript是单线程的,但通过使用异步编程模式,我们可以编写出既不会阻塞主线程执行又能处理耗时任务的......
  • 基于Java中的SSM框架实现娱乐影视公司管理系统项目【项目源码+论文说明】
    基于Java中的SSM框架实现娱乐影视公司管理系统演示摘要电脑的出现是一个时代的进步,不仅仅帮助人们解决了一些数学上的难题,如今电脑的出现,更加方便了人们在工作和生活中对于一些事物的处理。应用的越来越广泛,通过互联网我们可以更方便地进行办公,也能够在网上就能处理很多日......
  • 基于Java中的SSM框架实现在线考试系统项目【项目源码+论文说明】
    摘要本楚水高中在线考试系统是针对目前楚水高中在线考试的实际需求,从实际工作出发,对过去的楚水高中在线考试系统存在的问题进行分析,结合计算机系统的结构、概念、模型、原理、方法,在计算机各种优势的情况下,采用目前最流行的B/S结构和java中流行的MVC三层设计模式和eclipse编辑......
  • JavaScript系列:JS实现复制粘贴文字以及图片
    目录一.基于ClipboardAPI复制文字(推荐)基本概念主要方法使用限制实际应用示例二、基于document.execCommand('copy')缺陷实际应用示例说明三、复制图片功能四、封装一.基于ClipboardAPI复制文字(推荐)基本概念ClipboardAPI是一组用于在浏览器中操作剪贴板的JavaScript......
  • Java JNI 学习笔记
    JavaJNI学习笔记JNI(JavaNativeInterface)是Java提供的一种接口,使得java代码可以与其他语言(如C和C++)编写的代码进行交互。具体来说,JNI允许你在Java中调用本地(Native)代码,或者从本地代码调用Java方法。基本概念jni.h:这是JNI的头文件,使用javac生成,定义了JNI......
  • UDP网络编程java实现
    UdpUdp服务端实现步骤:创建Udp对象,监听端口创建数据包(数据包,数据长度)接收数据包(数据包)读取数据包,并输出将字节数组转化为字符串响应客户端消息(设置数据包)发送数据包//监听端口号DatagramSocketdatagramSocket=newDatagramSocket(6666);//创建数据包byte[]buff......
  • 【Android面试八股文】1. 说一说Java四大引用有哪些? 2. 软引用和弱引用的区别是什么?
    一、Java四大引用有哪些?在Java中,有四种不同类型的引用,它们在垃圾回收和对象生命周期管理方面有着不同的作用和行为。这四种引用分别是:强引用(StrongReference)软引用(SoftReference)弱引用(WeakReference)虚引用(PhantomReference)下面详细解释每种引用的特点和用途:......
  • VINS-Fusion源码逐行解析:updateLatestStates()函数与slideWindow()
    初始化并优化位姿后,接下来做的事是将这些位姿更新给上一帧,我们来看下updateLatestStates()源码:voidEstimator::updateLatestStates(){//锁定mPropagate,确保对最新状态的更新是线程安全的mPropagate.lock();//更新最新的时间戳,等于当前帧的时间戳加上时间延......