1

値(この場合はID)を検索するtxtファイルを検索する方法を理解していますが、通常、これは最初に見つかったオプションを返します。

IDに関連するファイルの最後の値を見つけてそれを使用するようにするには、どうすればよいですか?(この場合、17のカードIDの残高は813です。

txtファイルの例

17,721.0
17,744.0
17,767.0
17,790.0
17,813.0

私の現在の検索コード。

public static double readBalance(int cardNumber)
{
  double balance;  
  String line;

  try {
        File CbFile = new File("cardBalance.txt");
        BufferedReader br = new BufferedReader(
                            new InputStreamReader(
                            new FileInputStream(CbFile)));

        while((line = br.readLine()) != null) {
            if(line.indexOf(cardNumber) != -1)
                break;
        }
        String[] s = line.split("\\,");

        balance = Double.parseDouble(s[1]);
        System.out.println("Blalance of " + cardNumber +
                           " is: " + s[1]);
        br.close();
    } catch(IOException e) {
        System.out.println("read error: " + e.getMessage());
    }


  return  balance;

}

4

1 に答える 1

1

lastIndexOf(String)は、ファイル全体を一度にメモリに読み込むことができる場合に、最後に出現する文字列を示します。

そうでない場合は、次のようなものが必要になります。

String cardInfo;
String cardNumberString = cardNumber + ","; // makes sure that you don't get your
                                            // id in the middle of a value
while((line = br.readLine()) != null) {
    if(line.indexOf(cardNumberString) != -1)
        cardInfo = line;
}
于 2012-10-19T00:52:53.873 に答える