我有两个.txt文件:
- mothers.txt(IdNum,name,age(例如:6,Emily,34
- children.txt(num,性别(男孩/女孩(,name,dateOfBirth,weight,height,IdnumOfMother(例如:1 b Jackson 1999-10-15 3450 55 6
我唯一能做的就是用String[]把它们全部写出来。
String child = "children.txt";
BufferedReader reader = null;
String line = "";
reader = new BufferedReader(new FileReader(child));
while ((line = reader.readLine()) != null){
String[] row = line.split(",");
for (String x : row){
System.out.printf("%-10s", x );
}
System.out.println();
}
reader.close();
我必须找到最高的男孩,最重的女孩,在大多数孩子出生的那一天
你能帮我吗?这是我第一次使用.txt文件。提前谢谢。
您的问题需要根据不同的条件搜索文件以获得所需的属性值。使用Java编写任务代码的适用范围很窄。
使用SPL(Java的开源软件包(可以很方便地完成这项工作。SPL只需要几行代码:
| |A|
|:-|:-|
|1|=file("children.txt").import@ct()|
|2|=A1.select(sex=="b").maxp@a(height).(dateOfBirth)|
|3|=A1.select(sex=="g").maxp@a(weight).(dateOfBirth)|
|4|return A2,A3|
SPL提供了可由Java调用的JDBC驱动程序。只需将上面的SPL脚本存储为spicify.splx,并在Java中调用存储过程即可:
…
Class.forName("com.esproc.jdbc.InternalDriver");
con = DriverManager.getConnection("jdbc:esproc:local://");
st = con.prepareCall("call spicify()");
st.execute();
…
您还可以使用SPL通过外键方便地关联两个文件。例如,要查找最高男婴母亲的年龄和最重女婴母亲的年龄,SPL有以下代码:
| |A|
|:-|:-|
|1|=file("mothers.txt").import@ct()|
|2|=file("children.txt").import@ct().switch(IdnumOfMother,A1:IdNum)|
|3|=A2.select(sex=="b").maxp@a(height).(IdnumOfMother.age)|
|4|=A2.select(sex=="g").maxp@a(weight).(IdnumOfMother.age)|
|5|return A3,A4|
查看SPL源代码。