Java IO教程- Java文件
创建文件
我们可以从中创建一个 File 对象
- 路径名
- 父路径名和子路径名
- URI(统一资源标识符)
我们可以使用File类的以下构造函数之一创建一个文件:
File(String pathname)
File(File parent, String child)
File(String parent, String child)
File(URI uri)
如果我们有一个文件路径名字符串test.txt,我们可以创建一个抽象路径名作为下面的代码。
File dummyFile = new File("test.txt");
名为test.txt的文件不必存在,以使用此语句创建File对象。
dummyFile对象表示抽象路径名,它可能指向或可能不指向文件系统中的真实文件。
File类有几个方法来处理文件和目录。
使用File对象,我们可以创建新文件,删除现有文件,重命名文件,更改文件的权限等。
File类中的isFile()和isDirectory()告诉File对象是否表示文件或目录。
当前工作目录
JVM的当前工作目录是根据我们如何运行java命令来设置的。
我们可以通过读取user.dir系统属性来获取JVM的当前工作目录,如下所示:
String workingDir = System.getProperty("user.dir");
使用System.setProperty()方法更改当前工作目录。
System.setProperty("user.dir", "C:\\myDir");
要在Windows上指定C:\\ test作为user.dir系统属性值,我们运行如下所示的程序:
java -Duser.dir=C:\test your-java-class
文件的存在
我们可以使用File类的exists()方法检查File对象的抽象路径名是否存在。
boolean fileExists = dummyFile.exists();
完整源代码
import java.io.File;
public class Main {
public static void main(String[] argv) {
// Create a File object
File dummyFile = new File("dummy.txt");
// Check for the file"s existence
boolean fileExists = dummyFile.exists();
if (fileExists) {
System.out.println("The dummy.txt file exists.");
} else {
System.out.println("The dummy.txt file does not exist.");
}
}
}
上面的代码生成以下结果。

路径
绝对路径在文件系统上唯一标识文件。规范路径是唯一标识文件系统上文件的最简单路径。
我们可以使用getAbsolutePath()和getCanonicalPath()方法来分别获得由File对象表示的绝对路径和规范路径。
import java.io.File;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
printFilePath("dummy.txt");
printFilePath(".." + File.separator + "notes.txt");
}
public static void printFilePath(String pathname) {
File f = new File(pathname);
System.out.println("File Name: " + f.getName());
System.out.println("File exists: " + f.exists());
System.out.println("Absolute Path: " + f.getAbsolutePath());
try {
System.out.println("Canonical Path: " + f.getCanonicalPath());
}
catch (IOException e) {
e.printStackTrace();
}
}
}
上面的代码生成以下结果。

文件分隔符
不同的操作系统使用不同的字符来分隔路径名中的两个部分。
例如,Windows在路径名中使用反斜杠(\)作为名称分隔符,而UNIX使用正斜杠(/)。
File类定义了一个名为分隔符Char的常量,它是系统相关的名称分隔符。
我们可以使用File.separator Char常量来获取名称分隔符作为字符。
File.separator 常量将我们的名称分隔符作为String。
在程序中使用名称分隔符将使您的Java代码在不同的平台上工作。
Java IO教程- Java文件的更多相关文章
- Java IO教程
1 Java IO 教程 2 Java IO 概述 3 Java IO: 文件 4 Java IO: 管道 5 Java IO: 网络 6 Java IO: 字节和字符数组 7 Java IO: S ...
- Java:IO流与文件基础
Java:IO流与文件基础 说明: 本章内容将会持续更新,大家可以关注一下并给我提供建议,谢谢啦. 走进流 什么是流 流:从源到目的地的字节的有序序列. 在Java中,可以从其中读取一个字节序列的对象 ...
- java io流 对文件夹的操作
java io流 对文件夹的操作 检查文件夹是否存在 显示文件夹下面的文件 ....更多方法参考 http://www.cnblogs.com/phpyangbo/p/5965781.html ,与文 ...
- java io流 对文件操作
检查文件是否存在 获取文件路径 获取文件大小 ...... 更多参考手册 //对文件的操作 //检查文件是否存在 //获取文件路径 //获取文件大小 //文件是否可读 //文件是否可写 //.... ...
- java io流 创建文件、写入数据、设置输出位置
java io流 创建文件 写入数据 改变system.out.print的输出位置 //创建文件 //写入数据 //改变system.out.print的输出位置 import java.io.*; ...
- java.io.IOException: java.io.FileNotFoundException: /tmp/tomcat.2457258178644046891.8080/work/Tomcat/localhost/innovate-admin/C:/up/154884318438733213952/sys-error.log (没有那个文件或目录)
环境: Ubuntu18 vue+elementUI 实现文件的上传 报错信息: MultipartFile.transferTo(dest) 报 FileNotFoundException java ...
- java.io.OutputStream & java.io.FileOutputStream
java.io.OutputStream & java.io.FileOutputStream 1.Java.io.OutputStream(字节输出流) 字节输出流,这是一个抽象类,是表示输 ...
- Hive报错 Failed with exception java.io.IOException:java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: ${system:user.name%7D
报错信息如下 Failed with exception java.io.IOException:java.lang.IllegalArgumentException: java.net.URISyn ...
- 缓冲字符流 java.io.BufferedWriter ,java.io.BufferedReader,缓冲字符输出流:PrintWriter
package seday07; import java.io.IOException;import java.io.PrintWriter; /*** @author xingsir * 缓冲字符流 ...
- 转换流读写操作 java.io.OutputStreamWriter ,java.io.InputStreamReader
package seday07; import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStr ...
随机推荐
- Spring的Bean标签配置(一)
Bean标签基本配置 由于配置对象交由Spring来创建 默认情况下它调用的的是类中的无参构造函数,如果没有无参构造函数则不会创建成功 id:唯一标识符号,反射是通过无参构造创建对象的. class: ...
- Java 调用gdal API(二)——栅格裁剪
gdal可以说是GIS数据处理比较好的工具之一,虽然也提供了Java API,但是官方文档确实太过简单,用起来确实太难受,每次都需要去参考对应的C++api,然后在对应使用. 因此小编决定从这篇文章开 ...
- Mysql高级1-存储引擎
一.Mysql体系结构 1.1.连接层 最上层是一个客户端和链接服务,主要完成一些类似于链接处理,授权认证,及相关的安全方案,服务器也会为安全接入的而每个客户端验证它所具有的操作权限 1.2.服务层 ...
- CSDN这么公然爬取(piao qie)cnblogs的文章,给钱了吗?
在CSDN网站经常看到有博客转载cnblogs的文章,开始还以为是网友自行转载,后来才发现,这些所谓的转载应该都是机器爬取(piao qie)过去的.不知道cnblogs对此怎么看. 下面看看几个示例 ...
- 2021-11-29 Wpf的ViewModel和xaml绑定
ViewModel代码 public class MainViewModel { MainWindow _mainWindow; public MainViewModel(MainWindow mai ...
- ArrayList底层原理、线程安全及其相关集合(面试常问)
一.ArrayList底层原理 1.特点及其原理:ArrayList底层基于数组实现,查找快,增删慢 2.ArrayList底层原理,初始化及调用add()方法添加元素: 默认初始化容量为10 第一次 ...
- .NET5从零基础到精通:全面掌握.NET5开发技能【第二章】
章节: 第一章:https://www.cnblogs.com/kimiliucn/p/17613434.html 第二章:https://www.cnblogs.com/kimiliucn/p/17 ...
- 工具—批量备案信息查询并生成fofa查询语句
描述: 1.可以输入一个或多个公司名或域名或备案号,得到备案信息(备案公司名,备案公司网站url,备案号,域名类型,审核时间) 2.读取生成的信息并转为fofa语句,方便了指定目标的信息收集速度 工具 ...
- 微服务集成RabbitMq保姆级教程
本文通过简单的示例代码和说明,让读者能够了解微服务如何集成RabbitMq 之前的教程 https://www.cnblogs.com/leafstar/p/17641358.html 在这里我将介绍 ...
- 学习JavaScript的路径
学习JavaScript的路径可以按照以下步骤进行: 了解基本概念:首先学习JavaScript的基本概念,包括变量.数据类型.运算符.数组.对象.循环和条件语句等.可以通过阅读相关的教材.在线课程或 ...