Skip to content

Commit e380e5c

Browse files
authored
Merge pull request aimacode#300 from epidemia/fixed-method-may-fail-to-close-stream
fixed method may fail close stream
2 parents 66eb833 + ff263d7 commit e380e5c

File tree

2 files changed

+18
-11
lines changed

2 files changed

+18
-11
lines changed

aima-core/src/main/java/aima/core/learning/framework/DataSetFactory.java

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,19 @@ public DataSet fromFile(String filename, DataSetSpecification spec,
2020
String separator) throws Exception {
2121
// assumed file in data directory and ends in .csv
2222
DataSet ds = new DataSet(spec);
23-
BufferedReader reader = new BufferedReader(new InputStreamReader(
24-
DataResource.class.getResourceAsStream(filename + ".csv")));
25-
String line;
26-
while ((line = reader.readLine()) != null) {
27-
ds.add(exampleFromString(line, spec, separator));
23+
24+
try(BufferedReader reader = new BufferedReader(new InputStreamReader(
25+
DataResource.class.getResourceAsStream(filename + ".csv")))) {
26+
27+
String line;
28+
29+
while ((line = reader.readLine()) != null) {
30+
ds.add(exampleFromString(line, spec, separator));
31+
}
32+
2833
}
2934

3035
return ds;
31-
3236
}
3337

3438
public static Example exampleFromString(String data,

aima-core/src/main/java/aima/core/learning/neural/NNDataSet.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -66,11 +66,14 @@ public void createNormalizedDataFromFile(String filename) throws Exception {
6666
List<List<Double>> rds = new ArrayList<List<Double>>();
6767

6868
// create raw data set
69-
BufferedReader reader = new BufferedReader(new InputStreamReader(
70-
DataResource.class.getResourceAsStream(filename + ".csv")));
71-
String line;
72-
while ((line = reader.readLine()) != null) {
73-
rds.add(exampleFromString(line, ","));
69+
try (BufferedReader reader = new BufferedReader(new InputStreamReader(
70+
DataResource.class.getResourceAsStream(filename + ".csv")))) {
71+
72+
String line;
73+
74+
while ((line = reader.readLine()) != null) {
75+
rds.add(exampleFromString(line, ","));
76+
}
7477
}
7578

7679
// normalize raw dataset

0 commit comments

Comments
 (0)