Java 文件
Java文件
java.io包中的File类,用于处理文件。
使用File类,创建该类的对象,并指定文件名或目录名:
示例
import java.io.File; // 导入File类
File myObj = new File("filename.txt"); // 指定文件名
File类有许多方法,如下表:
| 方法 | 返回值类型 | 描述 |
|---|---|---|
canRead() |
Boolean | 测试文件是否可读 |
canWrite() |
Boolean | 测试文件是否可写 |
createNewFile() |
Boolean | 创建一个空文件 |
delete() |
Boolean | 删除一个文件 |
exists() |
Boolean | 测试文件是否存在 |
getName() |
String | 返回文件的名称 |
getAbsolutePath() |
String | 返回文件的绝对路径 |
length() |
Long | 返回文件大小(以字节为单位) |
list() |
String[] | 返回目录中文件的数组 |
mkdir() |
Boolean | 创建一个目录 |
如果你不知道“包”是什么,请参考我们的Java包教程。
创建文件
可使用createNewFile()方法创建一个文件。这个方法返回一个布尔值: 如果文件创建成功,返回true; 如果文件已经存在,返回false。
注意,关于文件的操作,通常应该包含在一个try…catch块,如果发生错误(如由于某种原因无法创建文件),会抛出IOException:
示例
import java.io.File; // 导入File类
import java.io.IOException; // 导入IOException类来处理错误
public class CreateFile {
public static void main(String[] args) {
try {
File myObj = new File("filename.txt");
if (myObj.createNewFile()) {
System.out.println("创建文件: " + myObj.getName());
} else {
System.out.println("文件已经存在");
}
} catch (IOException e) {
System.out.println("出错了");
e.printStackTrace();
}
}
}
输出将为:
创建文件: filename.txt
可以指定路径创建文件(需要权限)。对于Windows,使用双反斜杠转义“\”字符,对于Mac和Linux上,可以直接写路径,比如:/Users/name/filename.txt
示例
File myObj = new File("C:\\Users\\MyName\\filename.txt");
获取文件信息
可以通过File类的方法,获取文件信息:
示例
import java.io.File;
public class GetFileInfo {
public static void main(String[] args) {
File myObj = new File("filename.txt");
if (myObj.exists()) {
System.out.println("文件名: " + myObj.getName());
System.out.println("绝对路径: " + myObj.getAbsolutePath());
System.out.println("可写: " + myObj.canWrite());
System.out.println("可读: " + myObj.canRead());
System.out.println("文件大小(字节): " + myObj.length());
} else {
System.out.println("文件不存在");
}
}
}
输出将为:
文件名: filename.txt
绝对路径: C:\Users\MyName\filename.txt
可写: true
可读: true
文件大小(字节): 0
写入文件
下面的示例中,使用FileWriter类的write()方法,将一些文本写入文件。注意,写完文件后,应该使用close()方法关闭文件:
示例
import java.io.FileWriter; // 导入FileWriter类
import java.io.IOException; // 导入IOException类来处理错误
public class WriteToFile {
public static void main(String[] args) {
try {
FileWriter myWriter = new FileWriter("filename.txt");
myWriter.write("奇客谷教程 - 精品编程教程与实例");
myWriter.close();
System.out.println("成功写入文件");
} catch (IOException e) {
System.out.println("出错了");
e.printStackTrace();
}
}
}
输出将为:
成功写入文件
读取文件
下面的例子中,使用Scanner类来读取文件内容:
示例
import java.io.File; // 导入File类
import java.io.FileNotFoundException; // 导入这个类来处理错误
import java.util.Scanner; // 导入Scanner类来读取文本文件
public class ReadFile {
public static void main(String[] args) {
try {
File myObj = new File("filename.txt");
Scanner myReader = new Scanner(myObj);
while (myReader.hasNextLine()) {
String data = myReader.nextLine();
System.out.println(data);
}
myReader.close();
} catch (FileNotFoundException e) {
System.out.println("出错了");
e.printStackTrace();
}
}
}
输出将为:
奇客谷教程 - 精品编程教程与实例
注意: Java API中有很多类可以用来读写文件:
FileReader、BufferedReader、Files、Scanner、FileInputStream、FileWriter、BufferedWriter、FileOutputStream等,可根据需要选择。
Java 文件的更多相关文章
- 小兔Java教程 - 三分钟学会Java文件上传
今天群里正好有人问起了Java文件上传的事情,本来这是Java里面的知识点,而我目前最主要的精力还是放在了JS的部分.不过反正也不麻烦,我就专门开一贴来聊聊Java文件上传的基本实现方法吧. 话不多说 ...
- 从java文件和CS文件里查询方法使用次数工具
前几天,领导让我找一下老系统(Java)里getRemoteUser方法都哪个文件用了,package是什么,方法被调用了多少次,当时因为着急,所以,直接人工找的,但是以后要是再出现,人工找就太讨厌了 ...
- 一个Java文件至多包含一个公共类
编写一个java源文件时,该源文件又称为编译单元.一个java文件可以包含多个类,但至多包含一个公共类,作为编译时该java文件的公用接口,公共类的名字和源文件的名字要相同,源文件名字的格式为[公共类 ...
- Android Studio解决未识别Java文件(出现红J)问题
1.问题:java文件出现了红J的问题,正常情况下应该是显示蓝色的C标识. 2.解决方案:切换到project视图下,找到app这个module里的build.gradle,在android结构里插入 ...
- Eclipse不自动编译java文件的终极解决方案
最近我的eclipse经常犯傻,项目中总是有很多,启动项目也是没有启动类.查了下项目中生成的class文件,我靠竟然没有,或者还是以前的.原来是eclipse犯傻了,它没帮我自动编译java文件.一般 ...
- Java基础-一个java文件多个类的问题
一个.java文件当然可以包括多个类.但这些类有一个特殊的类与其它的不同,,这个类是带public 属性的类.一个.java类文件中仅有一个public属性的类.而且这个类与文件名相同.
- 【安卓】安卓res文件夹下的资源文件与R.java文件里面类的对应关系
对于drawable.layout.menu文件夹下的每一个文件都分别会在R.java文件里面生成drawable.layout.menu类的一个常量,类名就是文件夹的名字,常量的名字就是文件名字. ...
- java文件来演示如何访问MySQL数据库
java文件来演示如何访问MySQL数据库. 注:在命令行或用一个SQL的前端软件创建Database. 先创建数据库: CREATE DATABASE SCUTCS; 接着,创建表: CREATE ...
- Intellij Idea 工具在java文件中如何避免 import .*包
Intellij Idea工具在java文件中怎么避免import java.utils.*这样的导入方式,不推崇导入*这样的做法!Editor->Code Style->Java-> ...
- gen目录无法更新,或者gen目录下的R.JAVA文件无法生成
gen目录无法更新,或者gen目录下的R.JAVA文件无法生成 1.gen目录的用处 android gen目录下的R.java并不是由用户创建,而是android工程本身将android的资源进行自 ...
随机推荐
- 学习笔记(3)- BioASQ
本次目的是验证BioBERT在QA的效果. A challenge on large-scale biomedical semantic indexing and question answering ...
- 华为云WeLink 颠覆你对智能办公的想象
导读 华为云发现,与企业数字化关系最紧密的就是办公数字化,所以将WeLink放到华为云上可以作为一个抓手让企业更直观地感受到云端数字化,而且华为云的合作伙伴,也可以与WeLink建立联接,从而进整个企 ...
- Linux centos7 Linux网络相关、firewalld和netfilter、netfilter5表5链介绍、iptables语法
一. Linux网络相关 yum install net-tools ifconfig查看网卡ip ifup ens33开启网卡 ifdown ens33关闭网卡 设定虚拟网卡ens33:0 mii- ...
- <audio>音频标签
<audio ref="audio" @canplay="ready" @error="error" @timeupdate=&qu ...
- Py西游攻关之基础数据类型(三)-元组
Py西游攻关之基础数据类型 - Yuan先生 https://www.cnblogs.com/yuanchenqi/articles/5782764.html 六 tuple(元组) 元组被称为只读列 ...
- 应用间的API访问如何认证?
任何一个一个应用要访问另一个应用的API,需要首先到开放平台获取访问accesskey, 然后访问目标应用,目标应用中先检查来源访问token是否已存在缓存中,不存在需要去开放平台校验accesske ...
- 2019 徐州网络赛 G Colorful String 回文树
题目链接:https://nanti.jisuanke.com/t/41389 The value of a string sss is equal to the number of differen ...
- 一个Win32程序的进化------转载
一个Win32程序的进化 转载 weixin_34273046 发布于2017-11-15 10:53:00 阅读数 10 收藏 展开 一.为什么要学Win32 要回答这个问题,我们就要先搞清 ...
- 45 孩子们的游戏(圆圈中最后剩下的数) + list操作总结+ for_each多记忆容易忘记
题目描述 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此.HF作为牛客的资深元老,自然也准备了一些小游戏.其中,有个游戏是这样的:首先,让小朋友们围成一个大圈.然后,他随机指 ...
- 如何在Java中测试类是否是线程安全的
通过优锐课的java核心笔记中,我们可以看到关于如何在java中测试类是否线程安全的一些知识点汇总,分享给大家学习参考. 线程安全性测试与典型的单线程测试不同.为了测试一个方法是否是线程安全的,我们需 ...