文件操作

流关闭方法

public static void closeQuietly(Closeable closable)
{
if (null == closable)
{
return;
} try
{
closable.close();
}
catch (IOException e)
{
}
}

读文件

下面给出的是通用的读文件方法,获取到每行数据后,可以对每行数据进行处理

public static String read(String fileName) throws IOException
{
file = new File(fileName);
StringBuffer sb = new StringBuffer(); BufferedReader br = null;
try
{
br = new BufferedReader(new FileReader(file)); String line = null; while ((line = br.readLine()) != null)
{
//获取到每行数据后,可以进行一些处理
//如,读取的是配置文件格式为key=value,则可以在此处理
//如将key和value解析后保存到map中,供其他地方调用 sb.append(line);
sb.append('\n');
} return sb.toString().trim();
}
finally
{
close(br);
}
}

写文件

可以通过最后一个参数设置,如果存在同名文件是直接覆盖还是追加

/**
* 可以追加写文件
* @author
* @param append 是否追加写文件
* @param fileName
* @param s
* @throws IOException
*/
public static void write(boolean append, String fileName, String s)
throws IOException
{
File file = new File(fileName); if (file.getParent() != null)
{
file.mkdirs(file.getParent());
} if (file.exists())
{
String content = read(fileName); if (content.equals(s))
{
return;
}
} BufferedWriter bw = null;
try
{
FileWriter fileWriter = null;
if (append)
{
fileWriter = new FileWriter(file, true);
}
else
{
fileWriter = new FileWriter(file);
}
bw = new BufferedWriter(fileWriter);
bw.flush();
bw.write(s);
}
finally
{
close(bw);
}
}

获取目标路径下的文件名

public static String[] listFiles(String fileName) throws IOException
{
if (null == fileName || fileName.isEmpty())
{
return new String[0];
} File file = new File(fileName)); List files = new ArrayList(); File[] fileArray = file.listFiles(); for (int i = 0; (fileArray != null) && (i < fileArray.length); i++)
{
if (fileArray[i].isFile())
{
files.add(fileArray[i].getName());
}
} return (String[]) files.toArray(new String[files.size()]);
}

File相关操作的更多相关文章

  1. CentOS学习笔记--基本命令--目录的相关操作

    Linux基本命令--目录的相关操作 常见的处理目录的命令吧: cd:变换目录 pwd:显示目前的目录 mkdir:创建一个新的目录 rmdir:删除一个空的目录 cd (变换目录) cd是Chang ...

  2. cmd 下登陆ftp及相关操作

    cmd 下登陆ftp及相关操作 2011-08-09 20:34:28|  分类: 小技巧|字号 订阅 一.举例 假设FTP地址为“ 61.129.83.39”(大家试验的时候不要以这个FTP去试,应 ...

  3. 利用JAVA API远程进行HDFS的相关操作

    学习HDFS有一段时间了,现在把自己总结的HDFS的相关操作代码展示给大家. 主要有HDFS的增删改查,文件的追加,windows本地文件的上传,hdfs文件的下载,文件重命名,创建目录,文件是否存在 ...

  4. Android-SD卡相关操作

    SD卡相关操作 1.获取 App 文件目录 //获取 当前APP 文件路径 String path1 = this.getFilesDir().getPath(); 当前APP目录也就是应用的这个目录 ...

  5. Django框架详细介绍---ORM相关操作

    Django ORM相关操作 官方文档: https://docs.djangoproject.com/en/2.0/ref/models/querysets/ 1.必须掌握的十三个方法 <1& ...

  6. linux权限相关操作

    Linux权限管理是Linux中一个十分重要的概念,也是系统安全性的重要保障.这里主要介绍Linux的基本权限和默认权限,通过理论讲解与实验演示,可以详细了解到权限的相关操作及其重要性. 文件权限 [ ...

  7. C#路径的八种相关操作,判断字符串是否为路径等

    原文:C#路径的八种相关操作,判断字符串是否为路径等 1.判定一个给定的C#路径是否有效,合法 通过Path.GetInvalidPathChars或Path.GetInvalidFileNameCh ...

  8. mysql设置指定ip访问,用户权限相关操作

    基础语法GRANT priv_type ON database.table TO user[IDENTIFIED BY [PASSWORD] 'password'] [,user [IDENTIFIE ...

  9. java文件夹相关操作 演示样例代码

    java文件夹相关操作 演示样例代码 package org.rui.io; import java.io.File; import java.io.FilenameFilter; import ja ...

随机推荐

  1. Dynamics 365-RetrieveDependenciesForDeleteRequest

    不少人在使用Dynamics 365的时候,或多或少都会遇到Delete a Component的情况,比如Unregister a Plugin/Workflow. 想象这么一个常见的情形:你定制了 ...

  2. zabbix server3.4 使用mailx配置邮件报警

    软件具体配置如下: 操作系统:Centos7.5 zabbix server版本:zabbix server3.4 zabbix agent版本:zabbix agent3.0 现在开始配置zabbi ...

  3. 总结:web 发展的4个阶段

    一.概述 随着人们的需求发展,web技术的发展也经历了多个阶段,下一个阶段总是伴随着解决上一阶段的问题,从静态文本.动态执行.动态自动生成文本,web应用,到web2.0,本文就详细描述这些阶段的特征 ...

  4. 小程序实践(十):textarea实现简单的编辑文本界面

    textarea是官方的原生组件,用于多行输入 简单的例子,监听文本内容.长度,以及设置最大可输入文本长度 wxml <view class='textarea-Style'> <t ...

  5. AndroidTV端的requestFocus()问题

    每次开机盒子或者电视的时候,发现给某些控件设置请求焦点 requestFocus 会失效 最终的解决办法就是延时请求 view.postDelayed(new Runnable() { @Overri ...

  6. django源码分析 请求流程

    一.从浏览器发出一个请求,到返回响应内容,这个过程是怎么样的? 1. 浏览器解析输入的url 2. 查找url对应的ip地址 3. 通过ip地址访问我们的服务器 1.  请求进入wsgi服务器(我在这 ...

  7. MongoDB 常用的数据备份梳理汇总

    1.基于数据文件的备份 直接将原始的数据文件Copy至备份的地方,这个方法的优点是比较快,因为备份和恢复都不需要转换数据格式.缺点就是需要锁住数据库服务器,但是此方案通常备份是在从节点上进行,备份过程 ...

  8. python 实例六

    https://www.cnblogs.com/evablogs/p/6783498.html 题目:斐波那契数列. 程序分析:这个数列从第3项开始,每一项都等于前两项之和.故 n=1,2,f=1 n ...

  9. 【字】biang

    biang biang面的名字由来:biangbiang面是陕西关中地区的一中地区美食,因为在做这种面时会发出biang biang的声音,biang biang面因此得名.biang字简体共有42笔 ...

  10. Python开发【第一篇】基础题目二

    1 列表题 l1 = [11, 22, 33] l2 = [22, 33, 44] # a. 获取l1 中有,l2中没有的元素 for i in l1: if i not in l2: # b. 获取 ...