簡體   English   中英

將文件存儲在字符串中

[英]Storing a file in a string

我覺得將文件存儲在字符串中是一種不好的做法。 有沒有另一種方法可以做到這一點,因為我想比較一個鍵列表並在文件上做一個 indexOf(key) 。 密鑰可以在文件中的任何位置。

一個String應該沒問題,只要它適合 memory 沒有問題。

更好的選擇可能是對文件進行傳遞並將鍵存儲在HashSetHashMap映射中,例如關鍵字到文件中的偏移量。

您可以使用 BufferedReader 一次拉入數據塊:

    BufferedReader reader = new BufferedReader(
            new FileReader(file));
    char[] buf = new char[1024];
    int numRead=0;
    while((numRead=reader.read(buf)) != -1){
        String readData = String.valueOf(buf, 0, numRead);

...

並測試每個小字符串。 您需要跟蹤索引,但這將使用更少的 memory。

如果您的文件很大,並且您只是嘗試執行 indexOf 操作,最好將文件分階段加載到 memory 中。 在 BufferedReader 上設置適當的緩沖區,然后讀入緩沖區。 執行您的 indexOf 操作。 如果失敗,請重復此操作,但將緩沖區讀取的字符數的大小添加到 indexOf function 的返回值中。

根據您以這種方式使用文件的原因,這可能是不好的做法。 但是,一般來說,它不是。

如果您將該文件用作美化的屬性文件,那么也許您應該重新格式化文件中的文本並將其作為屬性文件讀入。

如果您可以將鍵和值存儲在數據庫中,那么這將是比搜索字符串更好的解決方案。

但是,如果您有一個要搜索的文本文件是否包含某些關鍵字,那么您已經在使用最簡單的解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM