【Java进阶篇】—— File类与IO流

2023-11-12

一、File类的使用

1.1 概述

  • File 类以及本章中的各种流都定义在 java.io 包下

  • 一个File对象代表硬盘或网络中可能存在的一个文件或文件夹(文件目录)

  • File 能新建、删除、重命名 文件和目录,但 File不能访问文件内容本身。如果我们想要访问文件内容本身,就需要使用 输入/输出流

    • File 对象作为参数传递给流的构造器
  • Java程序中表示一个真实存在的文件或目录用File对象,但定义的File对象不一定对应真实存在的文件或目录(file not found

1.2 构造器

  • public File(String pathname): 以pathname为路径创建File对象
    • pathname是绝对路径或相对路径都可以
    • 如果为相对路径,则默认的当前路径在系统属性 user.dir 中存储
  • public File(String parent, String child): 以parent为父路径,child为子路径创建File对象 【将父子路径拼接到一起就是个完整路径】
  • public File(File parent, String child): 根据一个父 File对象和子文件路径创建File对象【根据一个文件/目录的地址+child拼接新地址】

简述一下绝对路径和相对路径的概念:

  • 绝对路径:属于一个从盘符开始的完整路径
  • 相对路径:相对于项目目录的路径
    • IDEA中,main中的文件的相对路径,是相对于"当前工程"
    • IDEA中,单元测试方法中的文件的相对路径,是相对于"当前module"【模块】

代码演示:

package com.zwh.shangguigu.fileandio_;

import java.io.File;

/**
 * @author Bonbons
 * @version 1.0
 */
public class FileObjectTest {
    public static void main(String[] args) {
        //通过pathname创建File对象
        String path = "D:\\dataBase";
        File file1 = new File(path);
        //通过父路径+子路径创建File对象
        String parent = "C:\\aaa";
        String child = "bbb.txt";
        File file2 = new File(parent, child);
        //通过File对象+子路径创建File对象
        File parentDir = new File("d:\\aaa");
        String childFile = "bbb.txt";
        File file3 = new File(parentDir, childFile);

        //我们来打印一些File对象相关的信息
        System.out.println("file1 = " + file1);
        System.out.println("文件/目录的名称: " + file2.getName());
        System.out.println("文件/目录的构造路径名: " + file3.getPath());
        System.out.println("文件/目录的绝对路径名: " + file1.getAbsoluteFile());
        System.out.println("文件/目录的父目录名: " + file2.getParent());
    }
}

在这里插入图片描述

  • 总结:
    • 无论该路径下是否存在文件或者目录,都不影响File对象的创建

    • window的路径分隔符使用“\”,而Java程序中的“\”表示转义字符,所以在Windows中表示路径需要使用\\/,或者用File.separator常量值表示

      File file2 = new File(“d:+ File.separator + “atguigu” + File.separator + “info.txt”);
      
    • 当构造路径是绝对路径时,那么getPath和getAbsolutePath结果一样

    • 当构造路径是相对路径时,那么getAbsolutePath的路径 = user.dir的路径 + 构造路径

1.3 常用方法

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Java进阶篇】—— File类与IO流 的相关文章

随机推荐

  • 微信小程序把页面做成图片分享【原创】

    开发微信小程序的时候 经常要遇到如上图这样的 保存小程序二维码图片的分享功能 网上找了很多都没有具体的写法 于是自己看官方文档写了一个 分享一下 首先 需要在 wxml 中 创建一个 画板 canvas wxml
  • Matlab 绘制虚数和复数数据图

    Matlab 绘制虚数和复数数据图 在 Matlab 中 我们可以使用 plot 函数来绘制实数数据图 但是当数据包含虚部时 我们需要使用另一种方式来绘制 Matlab 中的虚数和复数数据可以用两种方式表示 一种是把虚数表示为 i 即 j
  • 6.3-训练DNN的技巧

    文章目录 一 新的激活函数 New activation function 1 1 校正线性单元 Rectified Linear Unit 1 2 Maxout 二 自适应学习率 Adaptive Learning Rate 2 1 Mo
  • 红帽子Linux6.5 X86_64 自动重启解决办法

    机器重启前的15分钟 都会有一个报错 usr sbin bmc watchdog fiid obj get present countdown value data not available redhat对此有说明https access
  • qt中的tableView中的排序

    一 第三列的排序方式 1 第3列是按照升序来排列 ui gt tableView gt sortByColumn 3 Qt AscendingOrder 第3列是按照升序来排列 ui gt tableView gt setSortingEn
  • 弱网测试—Network-Emulator-Toolkit

    弱网测试 属于健壮性测试 怎么样去做弱网测试呢 一 安装弱网测试工具 Network Emulator Toolkit 推荐一个工具 Network Emulator Toolkit 这个工具的作用主要是设置丢包率和延时 1 安装与卸载 下
  • 怎么使用Web3.js开发一个简单的Dapp

    通过这篇文章 我们将学习 Dapps 和 Web3js 的基础知识 让我们了解一下基本术语 区块链 去中心化应用程序 以太坊 智能合约 web3js 区块链 区块链是一个可审计且不可逆的数据库 其中数据只能添加 在区块链中 数据可以作为块添
  • elasticSearch详细教程

    一 Elasticsearch简介 Elasticsearch是使用Java编写的一种开源搜索引擎 它在内部使用Luence做索引与搜索 通过对Lucene的封装 提供了一套简单一致的RESTful API Elasticsearch也是一
  • 数据结构中Java实现KMP与BF算法对比

    public class KMPANDBF public int indexBfCount SeqString s SeqString t int begin int slen tlen i begin j 0 int count 0 sl
  • Scipy

    10 1 import numpy as np import scipy optimize as opt m 20 n 10 A np random normal loc 10 scale 3 size m n b np random no
  • 【C语言】#文件操作#有5个学生,每个学生有3门课程的成绩,从键盘输入以上数据(包括学号、姓名、3门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件stud中。

    题目 1 有5个学生 每个学生有3门课程的成绩 从键盘输入以上数据 包括学号 姓名 3门课成绩 计算出平均成绩 将原有数据和计算出的平均分数存放在磁盘文件stud中 设5名学生的学号 姓名和3门课成绩如下 在向文件stud写入数据后 应检查
  • Python 正则表达式RE知识学习

    正则表达式 Regular Expression 是一种强大的文本模式匹配工具 常用于在字符串中查找 替换 分割等操作 在 Python 中 可以使用内置的 re 模块来操作正则表达式 ChatGPT编写 下面是一些需要掌握的正则表达式知识
  • 《大五人格心理学》读书笔记

    这本书介绍了一下职场中的大五人格 具有不同人格特质的人适合干不同的工作 了解自己的人格特质 有利于自己的职业规划 了解同事的人格特质 有利于合作 1 宜人性 宜人性的心声 这对他人有什么影响VS 这对我有什么价值 宜人性的子维度 同理心 经
  • Nginx实现404页面的几种方法

    Nginx实现404页面的几种方法 第一种 Nginx自己的错误页面 第二种 反向代理的错误页面 第三种 Nginx解析php代码的错误页面 第四种 指定一个url地址 第一种 Nginx自己的错误页面 Nginx访问一个静态的html 页
  • JAVA单元测试框架-12-java代码重复执行失败的测试用例

    在使用testng执行测试用例时候 都会遇到测试用例执行失败 怎么再次执行失败的测试用例呢 官网给出了java代码执行测试的案例 每次执行完用例后会在test output目录路径下保存执行失败的测试用例 可以再次执行失败的测试用例来达到重
  • QT实现中英文键盘

    使用Qt中实现中英文键盘 支持各种linux嵌入式设备 实现思路 需要一个中文字体库 将字体库加载到一个Hash容器 字母和拼音作为key值 对应的中文作为value值 核心代码 include UKeyBoard h include ui
  • CSDN-markdown编辑器

    这里写自定义目录标题 欢迎使用Markdown编辑器 新的改变 功能快捷键 合理的创建标题 有助于目录的生成 如何改变文本的样式 插入链接与图片 如何插入一段漂亮的代码片 生成一个适合你的列表 创建一个表格 设定内容居中 居左 居右 Sma
  • 使用高德地图 vue-amap 中遇到的问题

    1 搜索组件进行搜索的时候 无论搜索哪个城市 地图一直固定在一个城市 我的是深圳
  • 基于Docker环境安装ElasticSearch

    1 搜索技术 搜索技术在我们日常生活的方方面面都会用到 例如 综合搜索网站 百度 谷歌等 电商网站 京东 淘宝的商品搜索 软件内数据搜索 我们用的开发工具 如Idea的搜索功能 这些搜索业务有一些可以使用数据库来完成 有一些却不行 因此我们
  • 【Java进阶篇】—— File类与IO流

    一 File类的使用 1 1 概述 File 类以及本章中的各种流都定义在 java io 包下 一个File对象代表硬盘或网络中可能存在的一个文件或文件夹 文件目录 File 能新建 删除 重命名 文件和目录 但 File不能访问文件内容