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#
0
投稿
猜你喜欢
- Mybatis与JPA的优缺点JPA java持久层API可理解为一种规范,Hibernate就是其具体一个实现。它的实现应用是Spring
- Android 消息机制1.概述Android应用启动时,会默认有一个主线程(UI线程),在这个线程中会关联一个消息队列(MessageQu
- Java 15 在 2020 年 9 月发布,虽然不是长久支持版本,但是也带来了 14 个新功能,这些新功能中有不少是十分实用的。Java
- 由于众所周知的原因,maven的库在中国大陆非常慢。我在百度上搜到的大部分文章都是直接在~/.m2/settings.xml 加入以下内容&
- 1.概述在实际开发过程中,我们经常需要调用对方提供的接口或测试自己写的接口是否合适。很多项目都会封装规定好本身项目的接口规范,所以大多数需要
- JAVA简单写学生信息管理系统,实现学生信息的输入、查询、修改、删除操作package Week;import jdk.internal.u
- AsyncTask什么是AsyncTaskAsyncTask是一个轻量级的异步任务类,它可以在线程池中执行后台任务,然后把执行的进度和结果传
- Spring框架的关键组件是面向方面编程(AOP)框架。面向方面的编程不仅打破程序逻辑分成不同的部分称为所谓的担忧。跨越多个点的应用程序的功
- 1.最近的项目中,有一个Activity用到Fragment+ViewPager,其中一个fragment中实现了视频播放的功能,包含有Su
- 1、普通用户与系统管理员用户的权限要有严格的区分。如果一个普通用户在使用查询语句中嵌入另一个Drop Table语句,那么是否允许
- 在编写ui界面时因为手机分辨率大小不同,所以展现出来的效果也是不同的,这个时候就需要考虑适配器,让根据手机分辨率自动适配相应尺寸来展示界面,
- Java及数据库对日期进行格式化Java对日期进行格式化可使用java.text.SimpleDateFormat示例package com
- 在程序中封装了一个List集合对象,然后需要把该集合中的实体插入到数据库中,由于项目使用了Spring+MyBatis的配置,所以打算使用M
- 详解java中的PropertyChangeSupport与PropertyChangeListenerjava中的PropertyChan
- 过年微信红包很火,最近有个项目也要做抢红包,于是写了个红包的生成算法。红包生成算法的需求预先生成所有的红包还是一个请求随机生成一个红包简单来
- Kotlin开发Android应用实例详解我们简单的知道了Kotlin这门新语言的优势,也接触了一些常见的语法及其简单的使用,相信你会对它有
- Java代码package com.zzx.controller;import com.zzx.model.User;import org.
- 在style中如下面那样定义:<style name="mystyle"> <item name=&
- @Order控制配置类/AOP/方法/字段的加载顺序1.AOP加载顺序 @Component &nbs
- 本文实例为大家分享了C#超市收银系统设计的具体代码,供大家参考,具体内容如下1.登录界面代码如下:using System;using Sy