Java文件操作
文件写入
使用 BufferedWriter类的 write() 方法向文件写入内容。
BufferedWriter:将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。
import java.io.*;
class Text {
public static void main(String[] args) {
try {
BufferedWriter out = new BufferedWriter(new FileWriter("demolx.txt"));
out.write("lxlxlx");
out.close();
System.out.println("文件创建成功!");
} catch (IOException e) {
}
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
读取文件内容
使用BufferedReader 的 readLine() 方法来读取文件内容。
import java.io.*;
class Text {
public static void main(String[] args) {
try {
BufferedReader in = new BufferedReader(new FileReader("demolx.txt"));
String str;
while ((str = in.readLine()) != null) {
System.out.println(str);
}
} catch (IOException e) {
}
}
}
/*
输出结果: lxlxlx
*/
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
删除文件
使用File类的 delete()方法对文件进行删除。
该类主要用于文件和目录的创建、文件的查找和文件的删除等。
import java.io.*;
class Text {
public static void main(String[] args) {
try{
File file = new File("./demolx.txt");
if(file.delete()){
System.out.println(file.getName() + " 文件已被删除!");
}else{
System.out.println("文件删除失败!");
}
}catch(Exception e){
e.printStackTrace();
}
}
}
/*
输出结果:demolx.txt 文件已被删除!
*/
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
文件内容拷贝
先使用 BufferedWriter 类的 write 方法创建一个文件写入内容,
用FileInputStream和FileOutputStream 读写文本文件,实现拷贝功能。
import java.io.*;
class Text {
public static void main(String[] args) throws Exception {
BufferedWriter out1 = new BufferedWriter(new FileWriter("demolx.txt"));
out1.write("demo:\n lxacy");
out1.close();
InputStream in = new FileInputStream(new File("demolx.txt"));
OutputStream out = new FileOutputStream
(new File("other.txt"));
byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
}
in.close();
out.close();
BufferedReader in1 = new BufferedReader(new FileReader("other.txt"));
String str;
while ((str = in1.readLine()) != null) {
System.out.println(str);
}
in1.close();
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
文件追加数据
使用 filewriter 方法向文件中追加数据,参数 append 设为true实现追加。
import java.io.*;
class Text {
public static void main(String[] args) throws Exception {
try {
BufferedWriter out = new BufferedWriter(new FileWriter("demolx.txt"));
out.write("11111\n");
out.close();
BufferedWriter out2 = new BufferedWriter(new FileWriter("demolx.txt",append:true));
out2.write("77777");
out2.close();
BufferedReader in = new BufferedReader(new FileReader("demolx.txt"));
String str;
while ((str = in.readLine()) != null) {
System.out.println(str);
}
in.close();
}
catch (IOException e) {
System.out.println("exception occoured"+ e);
}
}
}
/*
输出结果:
11111
77777
*/
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
创建临时文件
使用 File 类的 createTempFile(String prefix, String suffix) 方法在默认临时目录来创建临时文件,
参数 prefix 为前缀,suffix 为后缀。
import java.io.*;
class Text {
public static void main(String[] args) throws Exception {
File temp = File.createTempFile("demo", ".txt");
System.out.println("文件路径: "+temp.getAbsolutePath());
temp.deleteOnExit();
BufferedWriter out = new BufferedWriter(new FileWriter(temp));
out.write("aString");
System.out.println("临时文件已创建:");
out.close();
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
修改文件的修改日期
使用 File 类的 fileToChange.lastModified() 和 fileToChange setLastModified() 方法来修改文件最后的修改日期
import java.io.File;
import java.util.Date;
class Text {
public static void main(String[] args) throws Exception {
File fileToChange = new File("./demolx.txt");
fileToChange.createNewFile();
Date filetime = new Date(fileToChange.lastModified());
System.out.println(filetime.toString());
System.out.println(fileToChange.setLastModified(System.currentTimeMillis()));
filetime = new Date(fileToChange.lastModified());
System.out.println(filetime.toString());
}
}
/*
输出结果:
Fri Jun 05 11:27:44 CST 2020
true
Fri Jun 05 11:27:53 CST 2020
*/
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
获取文件修改时间
使用 File 类的 file.lastModified() 方法来获取文件最后的修改时间
import java.io.File;
import java.util.Date;
class Text {
public static void main(String[] args) {
File file = new File("demolx.txt");
Long lastModified = file.lastModified();
Date date = new Date(lastModified);
System.out.println(date);
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
获取文件大小
使用 File 类的 file.exists() 判断文件是否存在 ,通过 file.length() 方法来获取文件大小。
import java.io.File;
class Text {
public static long getFileSize(String filename) {
File file = new File(filename);
if (!file.exists() || !file.isFile()) {
System.out.println("文件不存在");
return -1;
}
return file.length();
}
public static void main(String[] args) {
long size = getFileSize("./demolx.txt");
System.out.println("java.txt文件大小为: " + size);
}
}
/*
输出结果: java.txt文件大小为: 0
*/
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
文件重命名
使用 File 类的 oldName.renameTo(newName) 方法来重命名文件
import java.io.File;
class Text {
public static void main(String[] args) {
File oldName = new File("./demolx.txt");
File newName = new File("./lx.txt");
if(oldName.renameTo(newName)) {
System.out.println("已重命名");
} else {
System.out.println("Error");
}
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
设置文件只读
使用 File 类的 file.setReadOnly() 方法来设置文件只读。
使用file.canWrite() 方法验证是否可以写入。
import java.io.File;
class Text {
public static void main(String[] args) {
File file = new File("./lx.txt");
System.out.println(file.setReadOnly());
System.out.println(file.canWrite());
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
检测文件是否存在
使用**file.exists()**检查文件是否存在。
import java.io.File;
class Text {
public static void main(String[] args) {
File file = new File("./java.txt");
System.out.println(file.exists());
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
File类创建文件
使用 File 类的 File() 构造函数和 file.createNewFile() 方法来创建一个新的文件。
import java.io.File;
import java.io.IOException;
class Text {
public static void main(String[] args) {
try{
File file = new File("./lx.txt");
if(file.createNewFile())
System.out.println("文件创建成功!");
else
System.out.println("出错了,该文件已经存在。");
}
catch(IOException ioe) {
ioe.printStackTrace();
}
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
文章来源: blog.csdn.net,作者:考古学家lx,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/weixin_43582101/article/details/106565844
- 点赞
- 收藏
- 关注作者
评论(0)