java怎么将数据文件读入,并赋值给动态数组

单色数据 发布于 2011/08/18 13:32
阅读 2K+
收藏 0
java怎么将数据文件读入,并赋值给动态数组?请教各位高手,请写详细些~

以下是问题补充:

@单色数据:按行读取。 (2011/08/18 13:33)
@单色数据:按行读取IP。将IP存入动态数组 (2011/08/18 13:34)
加载中
0
红薯
红薯

直接使用 commons-io 项目中的 FileUtils.readLines() 方法

FileUtils 类的 apidoc

红薯
红薯
@乱步 : 我不知道怎么再详细了,已经到极限了
单色数据
单色数据
能详细些吗?用java.io.*;
0
ShaoJiahao
ShaoJiahao
用\r\n或\n作分隔符就行了,不过如果小文件用FileUtils显然省事很多,总体来说就是看需求咯,如果文件很大,估计要分批读取,但是原则不变。
0
RainJ
RainJ

动态数组实现应该很麻烦吧(或者你的意思是List)??

最简单的做法可以用java.io.BufferedReader 里面的readLine方法来读.

当然也可以用Nio来读。

0
南北024
南北024

public class ReadFileUtil {

    /**
     * 日志操作类
     */
    private static final Logger log = Logger.getLogger(ReadFileUtil.class);

    /**
     * 根据文件路径读取文件,返回字节数组
     * @param fileName 读取文件的全路径名称
     * @return 以字节数组的形式返回文件内容
     * @throws Exception
     */
    public static byte[] getBytesFromFile(String fileName) throws Exception {
        if (fileName == null || "".equals(fileName)) {
            log.info("ReadFileUtil filePath is null");
            return null;
        }
        InputStream is = null;
        ByteArrayOutputStream out = new ByteArrayOutputStream();
        try {
            if (log.isDebugEnabled()) {
                log.debug("ReadFileUtil file path:" + fileName);
            }
            is = new FileInputStream(fileName);
            byte[] b = new byte[1024];
            int n;
            while ((n = is.read(b)) != -1) {
                out.write(b, 0, n);
            }// end while
        } catch (Exception e) {
            log.error("ReadFileUtil read file error :" + e.getMessage());
            throw e;
        } finally {
            if (is != null) {
                try {
                    is.close();
                } catch (Exception e) {
                    log.error("ReadFileUtil close io error :" + e.getMessage());
                    throw e;
                }// end try
            }// end if
        }// end try

        return out.toByteArray();
    }
}

返回顶部
顶部