次のコードでは、マーク(0)とリセット()メソッドを使用して、テキストファイルを上から下に5回読み取りました。私は助けてくれていません。あなたのwhileループでははるかに簡単にこれを行うことができます
BufferedReaderのコードが無効になっています
package com.narasimha;
import java.io.*;
import java.util.*;
public class Attempts {
public static void main(String args[]) {
int count=0;
BufferedReader file;
HashSet<String> ualist;
List<String> salist,ssclist,splist;
String ualine,saline,sscline,spline;
long sum=0;
double avg;
try{
file=new BufferedReader(new FileReader("KAR_UBONA_UBONACT15_20150929_20150930_FEEDBACK.txt"));
file.mark(0);
//1.No of Attempts
while(file.readLine()!=null){
count++;
}
System.out.println("No of Attempts\t"+count);
file.reset();
count=0;
//2. No of uniq Attempts
file.mark(0);
ualist=new HashSet<String>();
while((ualine=file.readLine())!=null){
String array[]=ualine.split(",");
ualist.add(array[0]);
}
for(String ua:ualist){
count++;
}
System.out.println("No of Uniq Attempts\t"+count);
file.reset();
count=0;
//3. Successful Attempts
file.mark(0);
salist=new ArrayList<String>();
while((saline=file.readLine())!=null){
String array[]=saline.split(",");
if(!(array[1].equals("0")))
salist.add(array[1]);
sum=sum+Integer.parseInt(array[1]);
}
for(String sa:salist){
count++;
}
avg=sum/count;
System.out.println("No of Successful Attempts\t"+count);
//Average Mou of Successful Calls
System.out.println("Avg Mou of Successful Calls\t"+avg);
file.reset();
count=0;
//4.Song Selected Calls
file.mark(0);
ssclist=new ArrayList<String>();
while((sscline=file.readLine())!=null){
String array[]=sscline.split(",");
if(!(array[2].equals("\\N")))
ssclist.add(array[2]);
}
for(String ssc:ssclist){
count++;
}
System.out.println("No of Song Selected Calls\t"+count);
file.reset();
count=0;
//5.calls where atleast one song was played
file.mark(0);
splist=new ArrayList<String>();
while((spline=file.readLine())!=null){
String array[]=spline.split(",");
if(!(array[3].equals("")))
splist.add(array[3]);
}
for(String sp:splist){
count++;
}
System.out.println("Songs where atleast on song was played\t"+count);
file.close();
}catch(IOException ioe){
System.out.print("Sorry! Unable to connect to the file");
}
}
}
働いていないとはどういう意味ですか?問題を指定してください。 – zubergu
'mark(0);'は 'mark'がファイル内の' 0'の位置にあることを意味していませんか? – Kayaman
正直言って、大量のバイト用に設計されていないので、_whole_ファイルの再読み込みに '#mark'と'#reset'を使うのは無意味です。新しいBufferedReaderを作成するだけです。 – Tom