-1

如何在现有的 .txt 文件中找到所有字符串“ID”并获取找到了多少个字符串?

我有一个 .txt 文件,例如:

Product ID = "001", Product Name = "P1"

Product ID = "002", Product Name = "P2"

Product ID = "003", Product Name = "P3"

 ...

我想Product ID = "LASTEST_ID_PLUS_1, Product Name = "new"在文件末尾添加,但不知道如何获取最后一个 ID 号。

4

3 回答 3

2
String filename = "test.txt";
int numOfIds = 0;
try (BufferedReader br = new BufferedReader(new FileReader(filename))) {
    String line = null;
    while ((line = br.readLine()) != null) {
        if (line.contains("Product ID = ")) {
            numOfIds++;
        }
    }
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

应该是一个很好的起点。保存最后读取的 ID,然后将其用于附加。

编辑:再次查看您的问题后,我什至不确定为什么您的 .txt 文件包含Product ID =在其中。使 txt 文件看起来像这样以便于处理:

001,P1
002,P2
003,P3

除非您没有显示整个文件,并且与存储的产品 ID 不同。

于 2013-07-16T11:08:48.013 回答
1
LineNumberReader lnr = null;
try {
    File file = new File("productList.txt");
    lnr = new LineNumberReader(new FileReader(file));
    lnr.skip(Long.MAX_VALUE);
    int lineNumber = lnr.getLineNumber();
    PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(file, true)));
    String productName = getProductName(); // may be a user input
    out.println("Product ID = \""+lineNumber+"\", Product Name = \""+productName+"\"\n");
    out.close();
} catch (Exception ex) {
    // handle it
} finally {
    try {
        lnr.close();
    } catch (IOException ex) {
        Logger.getLogger(H.class.getName()).log(Level.SEVERE, null, ex);
    }
}

我假设每一行都包含一个产品和序列号以 1 开头。

于 2013-07-16T11:20:38.233 回答
1
 InputStreamReader converter = new InputStreamReader(System.in);
 BufferedReader in = new BufferedReader(converter);
 while(CurLine = in.readLine())

 //after exiting the loop 

您可以使用 StringBuilder 方法“indexOf”和“subString”。然后你可以抓住最后一个ID。

于 2013-07-16T11:09:40.667 回答