package com.test.file;

import java.io.*;
import java.util.ArrayList;
import java.util.Date;
import java.util.List; /**
* 文件测试类,非工具类
*/
public class FileTest { /**
* 通过路径名创建一个文件夹
* @param folderPath
* @return 当且仅当创建成功时,返回code为true
*/
public static Result createFolder(String folderPath){
File file = new File(folderPath);
if(!file.exists()){
if(!file.mkdir()){
return Result.fail("创建本地文件夹失败");
}
}
return Result.success();
} /**
* 根据文件名创建一个File类,如果该文件不存在则创建一个。
* @param filePath
* @return 当且仅当创建成功时,返回code为true
* @throws IOException
*/
public static Result createFile(String filePath) throws IOException {
File file = new File(filePath);
if(!file.exists()){
if(!file.createNewFile()){
return Result.fail("创建本地文件失败");
}
}
return Result.success();
} /**
* 删除一个文件或文件夹
* @param path
* @return 当且仅当删除成功时,返回code为true
*/
public static Result delete(String path){
File file = new File(path);
if(!file.exists()){
return Result.fail("文件/文件夹并不存在");
}
if(!file.delete()){
return Result.fail("文件/文件夹存在,但在删除文件/文件夹时失败");
}
return Result.success();
} /**
* 清空一个文件夹内所有内容
* @param file
* @return
*/
public static Result cleanFolder(File file){
File[] files = file.listFiles();
for(int i = 0; i< files.length; i++){
if(files[i].isDirectory()){
cleanFolder(files[i]);
}
if(!files[i].delete()){
return Result.fail("删除文件/文件夹失败,失败文件/文件夹:" + files[i].getPath());
}
}
return Result.success();
} /**
* 删除一个文件夹,包括其中的所有内容
* @param folder
* @return
*/
public static Result deleteFolder(File folder){
if(!folder.isDirectory()) {
return Result.fail("该File不属于文件夹");
}
if(!folder.exists()) {
return Result.fail("文件夹并不存在,无法删除");
}
//清理文件夹
Result deleteFolderIncludeResult = cleanFolder(folder);
if(deleteFolderIncludeResult.code == Result.FAILURE_CODE){
return Result.fail(deleteFolderIncludeResult.msg);
}
if(!folder.delete()){
return Result.fail("文件夹已被清空,但删除文件夹失败");
}
return Result.success();
} /**
* 逐行读取文件内容
* @param file
* @return
* @throws IOException
*/
public static Result fileRead(File file) throws IOException {
if(file.isFile()){
return Result.fail("改文件不是一个标准文件");
}
FileReader fileReader = new FileReader(file);
BufferedReader bufferedReader = new BufferedReader(fileReader);
StringBuilder stringBuilder = new StringBuilder();
String lineStr = "";
while((lineStr = bufferedReader.readLine()) != null){
stringBuilder.append(lineStr).append("\n");
}
return ReadFileResult.success(stringBuilder.toString());
} /**
* 写入字符串到文件1
* @param path
* @param str
* @return
* @throws IOException
*/
public static Result fileWrite1(String path, String str) throws IOException {
File file = new File(path);
FileWriter fileWriter = new FileWriter(file);
fileWriter.write(str);
return Result.success();
} /**
* 写入字符串到文件2
* @param path
* @param str
* @return
* @throws IOException
*/
public static Result fileWrite2(String path, String str) throws IOException {
File file = new File(path);
FileOutputStream fileOutputStream = new FileOutputStream(file, true);
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fileOutputStream);
BufferedWriter bufferedWriter = new BufferedWriter(outputStreamWriter);
bufferedWriter.write(str);
return Result.success();
} /**
* 写入到字符串到文件3
* @param path
* @param str
* @return
* @throws IOException
*/
public static Result fileWrite3(String path, String str) throws IOException {
RandomAccessFile randomAccessFile = new RandomAccessFile(path, "rw");
long fileLength = randomAccessFile.length(); randomAccessFile.seek(fileLength);
randomAccessFile.writeBytes(str+"\n");
randomAccessFile.close(); return Result.success();
} /**
* 获取文件属性
* @param filePath
*/
public static void getFileField(String filePath){
File f = new File(filePath);
if (f.exists()) {
System.out.println(f.getName() + "的属性如下: 文件长度为:" + f.length());
System.out.println(f.isFile() ? "是文件" : "不是文件");
System.out.println(f.isDirectory() ? "是目录" : "不是目录");
System.out.println(f.canRead() ? "可读取" : "不");
System.out.println(f.canWrite() ? "是隐藏文件" : "");
System.out.println("文件夹的最后修改日期为:" + new Date(f.lastModified()));
} else {
System.out.println(f.getName() + "的属性如下:");
System.out.println(f.isFile() ? "是文件" : "不是文件");
System.out.println(f.isDirectory() ? "是目录" : "不是目录");
System.out.println(f.canRead() ? "可读取" : "不");
System.out.println(f.canWrite() ? "是隐藏文件" : "");
System.out.println("文件的最后修改日期为:" + new Date(f.lastModified()));
}
} /**
* 获取文件夹下所有文件
* @param folderPath
* @return
*/
public static File[] getFolderIncludeFile(String folderPath){
File folder = new File(folderPath);
if(!folder.exists()){
return null;
}
if(!folder.isDirectory()){
return null;
}
return folder.listFiles(new FileFilter() {
public boolean accept(File pathname) {
return !pathname.getName().startsWith(".");
}
});
} }

java的文件操作(1)的更多相关文章

  1. java常见文件操作

    收集整理的java常见文件操作,方便平时使用: //1.创建文件夹 //import java.io.*; File myFolderPath = new File(str1); try { if ( ...

  2. Java api 入门教程 之 JAVA的文件操作

    I/O类使用 由于在IO操作中,需要使用的数据源有很多,作为一个IO技术的初学者,从读写文件开始学习IO技术是一个比较好的选择.因为文件是一种常见的数据源,而且读写文件也是程序员进行IO编程的一个基本 ...

  3. java中文件操作的工具类

    代码: package com.lky.pojo; import java.io.BufferedReader; import java.io.BufferedWriter; import java. ...

  4. java csv 文件 操作类

    一个CSV文件操作类,功能比较齐全: package tool; import java.io.BufferedReader; import java.io.BufferedWriter; impor ...

  5. java中文件操作《一》

    在日常的开发中我们经常会碰到对文件的操作,在java中对文件的操作都在java.io包下,这个包下的类有File.inputStream.outputStream.FileInputStream.Fi ...

  6. java IO文件操作简单基础入门例子,IO流其实没那么难

    IO是JAVASE中非常重要的一块,是面向对象的完美体现,深入学习IO,你将可以领略到很多面向对象的思想.今天整理了一份适合初学者学习的简单例子,让大家可以更深刻的理解IO流的具体操作. 1.文件拷贝 ...

  7. Java常用文件操作-2

    上篇文章记录了常用的文件操作,这里记录下通过SSH服务器操作Linux服务器的指定路径下的文件. 这里用到了第三方jar包 jsch-0.1.53.jar, jsch-api 1.删除服务器上指定路径 ...

  8. Java常用文件操作-1

    在我们的实际工作中经常会用到的文件操作,再此,将工作中碰到的做一个记录,以便日后查看. 1.复制文件夹到新文件夹下 /** * 复制文件夹下所有文件到指定路径 *@param oldPath *@pa ...

  9. 【java】文件操作java.io.File

    package 文件操作; import java.io.File; import java.io.IOException; public class TestFile { public static ...

  10. Java 8 文件操作(转)

    我们知道在JDK6甚至之前的时候,我们想要读取一个文本文件也是非常麻烦的一件事,而现在他们都变得简单了, 这要归功于NIO2,我们先看看之前的做法: 读取一个文本文件 BufferedReader b ...

随机推荐

  1. 盘点Xcode中开发者最喜爱的十大开源插件

    Xcode IDE拥有着诸如导航.重构.校准等众多非常高大上的工具,而予以辅助的插件更是在Xcode的基础上对相关功能进行改进与扩展.在应用开发过程中,通过开源包管理器Alcatraz对插件进行安装管 ...

  2. sublime-text-how-to-jump-to-file-from-find-results-using-keyboard

    http://209.116.186.231/#newwindow=1&q=sublime+text+find+results+jump http://stackoverflow.com/qu ...

  3. HDU 1024 最大M字段和

    一道关于求最大M字段和的问题,翻译完题之后感觉很简单但就是写不来,后来仿佛推到一个dp式子了,对,仿佛...然后抄袭了个式子,嘿,和我的式子大体相似,然后就是很玄学的优化了...不多瞎bb了 1.首先 ...

  4. centOS 自动锁屏 解决办法

    System-->preferences --> Screensaver中 找到 Lock screen when screensaver is active 把前面的钩去掉

  5. Java堆内存溢出模拟

    先了解一下Java堆: 关于Java内存区域的分配,可以查看Java运行时数据区域一篇文章. Java堆是虚拟机内存管理中最大的一块区域,该区域是线程共享的,某Java进程中所有的线程都可以访问该区域 ...

  6. git 删除 repository

    git 删除 repository 打开版本库,选择要删除的repository 点击Settings 找到删除选项 输入repository name,点击delet…… 删除本地仓库 执行git ...

  7. 监督学习——决策树理论与实践(上):分类决策树

    1. 介绍         决策树是一种依托决策而建立起来的一种树.在机器学习中,决策树是一种预测模型,代表的是一种对象属性与对象值之间的一种映射关系,每一个节点代表某个对象/分类,树中的每一个分叉路 ...

  8. Fiddler Web Debugger是什么?(图文详解)

    不多说,直接上干货! 1.为什么是Fiddler? 抓包工具有很多,小到最常用的web调试工具firebug,达到通用的强大的抓包工具wireshark. 见 Windows里安装wireshark或 ...

  9. Mac在终端用命令装载dmg文件

    今天碰到个问题,下载了一个dmg文件,然后双击/右键安装,一点反应都没有.一开始以为是电脑的缘故,重启,依旧没有反应,然后想到用终端装载试试. 打开终端,输入命令: hdiutil attach we ...

  10. kibana-1-安装

    由于es5.2版本对head的插件支持不如2.4 安装挺麻烦, 于是选用kibana 关于5.2安装head插件可见这个博客 http://www.cnblogs.com/xing901022/p/6 ...