文件操作
流关闭方法
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()]);
}