2017-06-12 5 views
1

私はcsvファイルからすべての空白行を削除する簡単な関数書いている:これは比較的簡単であるべき、しかし、それが壊れる非標準文字:CSVファイルで奇妙な相互作用[ジャワ]

をéやÇのような非標準文字が使用されるときはいつでも。すなわち、以下のcsvファイル:

province,name,month 

Quebec,Franois,February 

は完璧に動作しますが、

province,name,month 

Quebec,François,February 

は単に全くWhiteSpaceRemoval.csvに印刷されません。さらに、私のチェックによれば、最初の有効な行でさえ、whileループは全く入力されません。これは私にはうんざりなことであり、私は間違っていることが本当に失われています。誰でもこれが何であるか知っていますか? Linuxで動く

答えて

0

あなたがちょうどあなたができる空行をフィルタリングする場合:

public List<String> filterNonEmptyLinesOnFile(String fileName) { 
    List<String> list = new ArrayList<>(); 

    try (Stream<String> stream = Files.lines(Paths.get(fileName))) { 
     list = stream.filter(line -> !line.isEmpty()) 
        .collect(Collectors.toList()); 

    } catch (IOException e) { e.printStackTrace(); 
    } finally { return list; } 
}