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中有很多类可以用来读写文件: FileReaderBufferedReaderFilesScannerFileInputStreamFileWriterBufferedWriterFileOutputStream等,可根据需要选择。

Java 文件的更多相关文章

  1. 小兔Java教程 - 三分钟学会Java文件上传

    今天群里正好有人问起了Java文件上传的事情,本来这是Java里面的知识点,而我目前最主要的精力还是放在了JS的部分.不过反正也不麻烦,我就专门开一贴来聊聊Java文件上传的基本实现方法吧. 话不多说 ...

  2. 从java文件和CS文件里查询方法使用次数工具

    前几天,领导让我找一下老系统(Java)里getRemoteUser方法都哪个文件用了,package是什么,方法被调用了多少次,当时因为着急,所以,直接人工找的,但是以后要是再出现,人工找就太讨厌了 ...

  3. 一个Java文件至多包含一个公共类

    编写一个java源文件时,该源文件又称为编译单元.一个java文件可以包含多个类,但至多包含一个公共类,作为编译时该java文件的公用接口,公共类的名字和源文件的名字要相同,源文件名字的格式为[公共类 ...

  4. Android Studio解决未识别Java文件(出现红J)问题

    1.问题:java文件出现了红J的问题,正常情况下应该是显示蓝色的C标识. 2.解决方案:切换到project视图下,找到app这个module里的build.gradle,在android结构里插入 ...

  5. Eclipse不自动编译java文件的终极解决方案

    最近我的eclipse经常犯傻,项目中总是有很多,启动项目也是没有启动类.查了下项目中生成的class文件,我靠竟然没有,或者还是以前的.原来是eclipse犯傻了,它没帮我自动编译java文件.一般 ...

  6. Java基础-一个java文件多个类的问题

    一个.java文件当然可以包括多个类.但这些类有一个特殊的类与其它的不同,,这个类是带public 属性的类.一个.java类文件中仅有一个public属性的类.而且这个类与文件名相同.

  7. 【安卓】安卓res文件夹下的资源文件与R.java文件里面类的对应关系

    对于drawable.layout.menu文件夹下的每一个文件都分别会在R.java文件里面生成drawable.layout.menu类的一个常量,类名就是文件夹的名字,常量的名字就是文件名字. ...

  8. java文件来演示如何访问MySQL数据库

    java文件来演示如何访问MySQL数据库. 注:在命令行或用一个SQL的前端软件创建Database. 先创建数据库: CREATE DATABASE SCUTCS; 接着,创建表: CREATE ...

  9. Intellij Idea 工具在java文件中如何避免 import .*包

    Intellij Idea工具在java文件中怎么避免import java.utils.*这样的导入方式,不推崇导入*这样的做法!Editor->Code Style->Java-> ...

  10. gen目录无法更新,或者gen目录下的R.JAVA文件无法生成

    gen目录无法更新,或者gen目录下的R.JAVA文件无法生成 1.gen目录的用处 android gen目录下的R.java并不是由用户创建,而是android工程本身将android的资源进行自 ...

随机推荐

  1. Java基础 -1.4

    标识符与关键字 对于标识符的组成在Java之中的定义如下:由字母.数字._.$ 组成 其中不能使用Java的保留字(关键字) 其中 $ 一般都有特殊的含义 不建议出现在自己所编写的代码上 关键字 是系 ...

  2. Ubuntu 解决TXT文本乱码问题

    只要依次在终端输入这两行指令即可: gsettings set org.gnome.gedit.preferences.encodings auto-detected "['GB18030' ...

  3. LeetCode刷题--21.合并两个有序链表(简单)

    题目描述 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1 -> 2 -> 4 ,1 -> 3 -> 4 输出:1 ...

  4. 如何创建Github账号及将本地项目上传至GitHub?

    如何将本地项目上传至GitHub 首先你需要一个github账号,所有还没有的话先去注册吧! https://github.com/ 我们使用git需要先安装git工具,这里给出下载地址,下载后一路直 ...

  5. 十五 Spring的AOP的注解的通知类型,切入点的注解

    Spring的注解的AOP的通知类型 @Before:前置通知 @AfterReturning:后置通知 @Around:环绕通知 @AfterThrowing:异常抛出通知 @After:最终通知 ...

  6. gerrit关闭管理员权限后解决办法

    问题描述:gerrit以管理员的身份登录后,create new list和 create new group不显示,导致无法创建新的项目和权限组 出现问题:gerrit可视化页面误删all_proj ...

  7. Linux centosVMware shell脚本介绍、shell脚本结构和执行、date命令用法、shell脚本中的变量

    一. shell脚本介绍 shell是一种脚本语言 aming_linux blog.lishiming.net 可以使用逻辑判断.循环等语法 可以自定义函数 shell是系统命令的集合 shell脚 ...

  8. SVN偷锁,强制解锁

    1.将被锁文件SVN Check out...到本地硬盘2.点击文件右键,选择get lock 3.勾上 steal the locks 4.点击文件右键,选择 Release Lock操作即可 学无 ...

  9. list中会直接绑定HashMap中的数据

    import java.util.ArrayList;import java.util.HashMap;import java.util.List; public class HashMapSync ...

  10. Lesson 47 The great escape

    What is one of the features of modern camping where nationality is concerned? Economy is one powerfu ...