文件操作

流关闭方法

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. Access denied for user 'root'@'localhost' (using password:YES) Mysql5.7

    解决方案: (1) 打开MySQL目录下的my.ini文件,在文件的最后添加一行“skip-grant-tables”,保存并关闭文件.(my.ini在C:\ProgramData\MySQL\MyS ...

  2. 基于raspberry搭建个人web server

    树莓派系统介绍 安装操作系统及网络\远程控制配置 安装常用软件 构建web服务器(nginx + php + sqlite) 构建web服务器(appach+mysql+php) 构建NAS服务器 其 ...

  3. Linux分页机制之分页机制的演变--Linux内存管理(七)

    1 页式管理 1.1 分段机制存在的问题 分段,是指将程序所需要的内存空间大小的虚拟空间,通过映射机制映射到某个物理地址空间(映射的操作由硬件完成).分段映射机制解决了之前操作系统存在的两个问题: 地 ...

  4. python中创建虚拟环境

    # virtualenv 虚拟环境安装 pip install virtualenv # 创建虚拟环境        virtualenv [虚拟环境名称] # 进入虚拟环境 windows : 进入 ...

  5. SQLServer之创建嵌套触发器

    嵌套触发器创建规则 当触发器执行启动其他触发器的操作时,DML 和 DDL 触发器都是嵌套触发器. 这些操作都可以启动其他触发器等. DML 触发器和 DDL 触发器最多可以嵌套 32 层. 可以通过 ...

  6. 5.机器学习——DBSCAN聚类算法

    1.优缺点 优点: (1)聚类速度快且能够有效处理噪声点和发现任意形状的空间聚类: (2)与K-MEANS比较起来,不需要输入要划分的聚类个数: (3)聚类簇的形状没有偏倚: (4)可以在需要时输入过 ...

  7. .NET平台下,初步认识AutoMapper

    初步认识AutoMapper AutoMapper 初步认识AutoMapper 前言 手动映射 使用AutoMapper 创建映射 Conventions 映射到一个已存在的实例对象   前言 通常 ...

  8. 苹果手机连接Wifi认证机制

    Wifi状态保持方法和nas设备 https://patents.google.com/patent/CN106793171A/zh 基于ios终端的离线wifi热点认证方法和认证系统 https:/ ...

  9. ubuntu下安装飞鸽传书

    1.从官网下载Linux版本飞鸽传书(http://www.ipmsg.org.cn/) 2.解压后执行 ./QIpmsg 若报错 libstdc++.so.6: version `CXXABI_AR ...

  10. appium设置会话时间,可以超长时。Open Application