从数据文件中获取类似Resultset的内容

时间:2015-07-13 06:51:34

标签: java file

我想读取一个分隔符分隔或固定宽度的文件(定义的布局),并希望获得类似Resultset的东西,通过它我可以迭代记录。

这样做有可靠的库吗?如果没有,那么任何人都可以建议我如何进行?示例代码段对我非常有帮助。

2 个答案:

答案 0 :(得分:1)

您可以使用java ios迭代文本文件中的每一行,然后实现自己的逻辑来分割行并按照需要执行。

 public static void main(String args[]) throws Exception {
//input file
File inputFile = new File("c:/hadoop/sample.txt");
BufferedReader br = new BufferedReader(new FileReader(inputFile));
String s = null;
while ((s = (br.readLine())) != null) {
    //check each line and do the logic may be split or based on the requirement   
        String cols[] =s.split("|");

}
}

答案 1 :(得分:0)

public static Stream<String> lines(Path path)
                            throws IOException

从文件中读取所有行作为流。使用UTF-8字符集将文件中的字节解码为字符。

此方法的作用就好像调用它等同于评估表达式:

 Files.lines(path, StandardCharsets.UTF_8)

<强>参数: path - 文件的路径

返回:文件中的行作为流

投掷:

IOException - 如果打开文件时出现I / O错误

SecurityException - 如果是默认提供程序,并且安装了安全管理器,则会调用checkRead方法来检查对该文件的读访问权。

自: 1.8

Files.lines(Path)需要Path参数并返回Stream<String>。 这是Java 8,因此您可以使用lambda表达式或方法引用来提供Consumer参数。

public class FixedWidthFile {

    public static void main(String JavaLatte[]) {
        Path path = Paths.get("/home/sample.txt");
        try {
            Stream<String> lines = Files.lines(path);
            lines.forEach(s -> System.out.println(s));
        } catch (IOException ex) {

        }
    }
}

参考:Class Files