[英]Storing a file in a string
我覺得將文件存儲在字符串中是一種不好的做法。 有沒有另一種方法可以做到這一點,因為我想比較一個鍵列表並在文件上做一個 indexOf(key) 。 密鑰可以在文件中的任何位置。
一個String
應該沒問題,只要它適合 memory 沒有問題。
更好的選擇可能是對文件進行傳遞並將鍵存儲在HashSet
或HashMap
映射中,例如關鍵字到文件中的偏移量。
您可以使用 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.