mirror of
https://github.com/yacy/yacy_search_server.git
synced 2024-09-19 00:01:41 +02:00
add InputStream close after reading input file (Vocabulary_p servlet)
This commit is contained in:
parent
2422626975
commit
4cc38e979d
|
@ -101,8 +101,8 @@ public class Vocabulary_p {
|
|||
discoverFromCSVCharset = charsets.get(0);
|
||||
ConcurrentLog.info("FileUtils", "detected charset: " + discoverFromCSVCharset + " used to read " + discoverFromCSVFile.toString());
|
||||
}
|
||||
// read file
|
||||
BufferedReader r = new BufferedReader(new InputStreamReader(new FileInputStream(discoverFromCSVFile), discoverFromCSVCharset));
|
||||
// read file (try-with-resource to close inputstream automatically)
|
||||
try (BufferedReader r = new BufferedReader(new InputStreamReader(new FileInputStream(discoverFromCSVFile), discoverFromCSVCharset))) {
|
||||
String line = null;
|
||||
Pattern semicolon = Pattern.compile(";");
|
||||
Map<String, String> synonym2literal = new HashMap<>(); // helper map to check if there are double synonyms
|
||||
|
@ -142,6 +142,7 @@ public class Vocabulary_p {
|
|||
table.put(literal, new Tagging.SOTuple(synonyms, objectlink == null ? "" : objectlink));
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
Iterator<DigestURL> ui = segment.urlSelector(discoveruri, Long.MAX_VALUE, 100000);
|
||||
while (ui.hasNext()) {
|
||||
|
|
|
@ -933,26 +933,24 @@ public final class FileUtils {
|
|||
*/
|
||||
public static List<String> detectCharset(File file) throws IOException {
|
||||
// auto-detect charset, used code from http://jchardet.sourceforge.net/; see also: http://www-archive.mozilla.org/projects/intl/chardet.html
|
||||
List<String> result;
|
||||
try (BufferedInputStream imp = new BufferedInputStream(new FileInputStream(file))) { // try-with-resource to close inputstream
|
||||
nsDetector det = new nsDetector(nsPSMDetector.ALL);
|
||||
BufferedInputStream imp = new BufferedInputStream(new FileInputStream(file));
|
||||
|
||||
byte[] buf = new byte[1024] ;
|
||||
int len;
|
||||
boolean done = false ;
|
||||
boolean isAscii = true ;
|
||||
|
||||
while ((len = imp.read(buf,0,buf.length)) != -1) {
|
||||
if (isAscii) isAscii = det.isAscii(buf,len);
|
||||
if (!isAscii && !done) done = det.DoIt(buf,len, false);
|
||||
}
|
||||
det.DataEnd();
|
||||
List<String> result = new ArrayList<>();
|
||||
} det.DataEnd();
|
||||
result = new ArrayList<>();
|
||||
if (isAscii) {
|
||||
result.add(StandardCharsets.US_ASCII.name());
|
||||
} else {
|
||||
for (String c: det.getProbableCharsets()) result.add(c); // worst case this returns "nomatch"
|
||||
}
|
||||
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user