java中的文件操作总结(干货)
作者:coder_elijah 发布时间:2023-11-08 22:24:29
标签:java,文件操作
File类简介
package com.file;
import java.io.File;
import java.io.IOException;
/**
* Created by elijahliu on 2017/2/10.
*/
public class filetest {
public static void main(String[] args) {
File file = new File("hello.txt");
//是否存在
if (file.exists()) {
//文件
System.out.println(file.isFile());
//路径(文件夹)
System.out.println(file.isDirectory());
File nameto = new File("new Hello.txt");
file.renameTo(nameto);//这里就是重命名文件的操作,直接新建一个file对象然后使用renameTo方法可以重命名文件
} else {
System.out.println("文件不存在");
try {
file.createNewFile();
System.out.println("文件已被创建");
} catch (IOException e) {
System.out.println("文件无法创建");
}
}
if (file.exists()) {
//删除文件
file.delete();
System.out.println("删除文件");
} else {
}
}
}
文件夹操作
package com.file;
import java.io.File;
/**
* Created by elijahliu on 2017/2/11.
*/
public class HelloFolder {
public static void main(String[] args) {
File folder = new File("my new folder");
if (folder.mkdir()) {//创建文件夹 判断是否成功
System.out.println("文件夹创建完成");
File newfolder = new File("myn new foleder - new");
folder.renameTo(newfolder);//这里重命名了文件夹 文件夹的重命名是可以单独更改一级的文件夹名的 而这一级下面的文件夹不变 保存目录结构
if (folder.delete()) {
System.out.print("done");//这里的删除只能删除空文件夹,如果文件夹中有东西,那么则不能删除,不问三七二十一直接删除一个非空文件夹是非常不负责任的
} else {
System.out.println("fail");
}
}else{
if (folder.exists()) {
System.out.println("文件夹已经存在不用创建");
}else{
System.out.println("文件夹创建失败");
}
}
File folders = new File("my new folder/one/two/three/main");
folders.mkdirs();//在java中用mkdir只能创建一个,mkdirs可以创建多级目录
}
}
文件属性设置
package com.file;
import java.io.File;
/**
* Created by elijahliu on 2017/2/11.
*/
public class SetFileProperty {
public static void main(String[] args){
File file = new File("test.file");
if (file.exists()){
file.setWritable(true);//可写
file.setReadable(true);//可读
file.setReadOnly();//只读
}
}
}
遍历文件夹
public void printFiles(File dir,int tab) {//tab为不同目录结构的缩进量
if (dir.isDirectory()) {
File next[] = dir.listFiles();//判断如果是目录 则返回目录所有的文件名数组用于遍历文件夹
for (int i = 0;i<next.length;i++) {//层次缩进输出
System.out.print("---");
}
for(int i = 0;i<next.length;i++) {//这里用了递归获取目录结构
System.out.println(next[i].getName());
if (next[i].isFile()) {
printFiles(next[i],++tab);
}
}
}
}
文件简单读写
package com.file;
import java.io.*;
/**
* Created by elijahliu on 2017/2/11.
*/
public class ReadFile {
public static void main(String[] args) {
File file = new File("new Hello.txt");
if(file.exists()){
System.err.print("exsit");
try (FileInputStream fis = new FileInputStream(file)) {//文件输入流 这是字节流
InputStreamReader isr = new InputStreamReader(fis,"UTF-8");//inputstreamReader是一个字节流,将字节流和字符流转化的时候,就需要制定一个编码方式,不然就会乱码
BufferedReader br = new BufferedReader(isr);//字符缓冲区
String line;
while((line = br.readLine())!=null){//这里将缓冲区里的内容如果非空就读出来打印
System.out.println(line);
}
br.close();//最后将各个线程关闭
isr.close();
fis.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
File newfile = new File("newtext.txt");
try {
FileOutputStream fos = new FileOutputStream(newfile);//这里如果文件不存在会自动创建文件
OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8");//和读取一样这里是转化的是字节和字符流
BufferedWriter bw = new BufferedWriter(osw);//这里是写入缓冲区
bw.write("厉害了我的哥");//写入字符串
bw.close();//和上面一样 这里后打开的先关闭 先打开的后关闭
osw.close();
fos.close();
System.out.println("done");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
来源:http://www.jianshu.com/p/5770760f83c1#


猜你喜欢
- 开发环境JDK1.8 eclipse struts2-2.3.31 1.创建web项目 2.导入struts2核心jar包 3.更改web.
- 本文实例讲述了java读取properties文件的方法。分享给大家供大家参考。具体实现方法如下:package com.test.demo
- 前言MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以
- 1. 什么是单例模式单例模式指的是在应用整个生命周期内只能存在一个实例。单例模式是一种被广泛使用的设计模式。他有很多好处,能够避免实例对象的
- C#与Java相比较从整体上来看,c#和java及其相似,甚至超过了c#与c、c++的相似程度,下面是两种语言的比较。两者都能编译成跨平台,
- 前言:在 Java 语言中,提高程序的执行效率有两种实现方法,一个是使用线程、另一个是使用线程池。而在生产环境下,我们通常会采用后者。为什么
- 前言开篇一个例子,我看看都有谁会?如果不会的,或者不知道原理的,还是老老实实看完这篇文章吧。@Slf4j(topic = "c.V
- 可以用如下方法: 修改AudioYusuStreamOut.cpp,添加方法: void AudioYusuStreamOut::swS2M
- 实践过程效果代码public partial class Form1 : Form{ private HookEx
- ArrayList与Array的区别概述 ArrayList 是数
- C语言实现矩阵运算给定一个n×n的方阵,本题要求计算该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。副对角线为从矩阵的右上角至左下角
- 1. JAVA 内存模型 (JMM)JMM是用来干嘛的?:《Java虚拟机规范》中曾试图定义一种“Java内存模型&am
- 半藏商城中会有一些用户提交了订单但是一直没有支付的情况,之前我是通过quartz定时任务每天的5点扫描未支付订单然后读取用户的邮箱地址发送邮
- jsoup 是一款 Java 的 HTML 解析器,可直接解析某个 URL 地址、HTML 文本内容。它提供了一套非常省力的 API,可通过
- Home键(小房子键)在键盘上映射的就是home键,这倒是很好记。Menu键用于打开菜单的按键,在键盘上映射的是F2键,PgUp键同样可以。
- 在日常工作中,我们往往只关注 Java 内存使用情况,这主要是因为 Java 内存分析相关的工具比较多。与之不同的是,图片内存分析的工具比较
- 前面有写到Spring+SpringMVC+MyBatis深入学习及搭建(一)——MyBatis的基础知识。MybatisFirst中存在大
- TCP和UDP在网络传输中非常重要,在Android开发中同样重要。首先我们来看一下什么是TCP和UDP。什么是TCP?TCP:Transm
- 大多数情况下你不需要访问者模式,但当一旦需要访问者模式时,那就是真的需要它了,这是设计模式创始人的原话。可以看出应用场景比较少,但需要它的时
- 一、基本使用它们是 LockSupport 类中的方法// 暂停当前线程LockSupport.park(); // 恢复某个线程的运行Lo