File相关操作

文件操作

流关闭方法

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()]);
}
posted @ 2018-07-23 17:18  风动静泉  阅读(163)  评论(0编辑  收藏  举报