[英]Read in the last n lines of a csv file using a BufferedReader
我有一個程序使用BufferedReader
讀取CSV文件的第一行和最后一行,現在我需要將其轉換為讀取文件的第一行和最后一行,因為格式已更改。 但我不確定如何表示最后8行。
如何(我可以)使用BufferedReader
表示文件的最后8行
try(BufferedReader reader = new BufferedReader(
new InputStreamReader(
response.getEntity().getContent()))) {
if(reader != null){
String aux = "";
String lastLineMinusOne = "";
while ((aux = reader.readLine()) != null) {
String auxTrimmed = aux.replaceAll("(?m)^[ \t]*\r?\n", "");
if(count == 0)firstLine = auxTrimmed;
lastLineMinusOne = lastLine;
lastLine = auxTrimmed;
count ++;
}
logger.info("Count = " + count);
columns = firstLine.split(",");
data = lastLine.split(",");
如果尺寸超過8
只需使用Deque
並將其移除。
由於隊列是FIFO
因此如果使用remove()
,它將只保留最近的8個條目。
Deque<String> queue=new ArrayDeque<String>();
String line;
while ((aux = reader.readLine()) != null){
if(queue.size()>=8){
queue.remove();
}
queue.add(aux);
}
System.out.println(queue.size());//should print 8
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.