日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

Java第一次读文件慢_Java 关于文件读取速度问题,求助,谢谢啦

發(fā)布時(shí)間:2025/3/19 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java第一次读文件慢_Java 关于文件读取速度问题,求助,谢谢啦 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

展開全部

/**

*?ip條目實(shí)體類

*/

public?class?IpEntry?{

String?country,?province,?city,?region,?local;

long?start?=?0,?end?=?0;

public?String?getCountry()?{

return?country;

}

public?String?getProvince()?{

return?province;

}

public?String?getCity()?{

return?city;

}

public?String?getRegion()?{

return?region;

}

public?String?getLocal()?{

return?local;

}

/**

*?接受字符串初始化屬性62616964757a686964616fe59b9ee7ad9431333337376331

*?@param?text

*/

public?IpEntry(String?text)?{

String?fields[]?=?text.split(",");

start?=?Long.parseLong(fields[1]);

end?=?Long.parseLong(fields[3]);

country?=?fields[5];

province?=?fields[6];

city?=?fields[7];

region?=?fields[8];

local?=?fields[9];

}

}

import?java.io.BufferedReader;

import?java.io.FileReader;

import?java.io.IOException;

import?java.util.ArrayList;

import?java.util.List;

/**

*?ip地址表類

*/

public?class?IpTable?{

List?table;

//讀取文件寫入,?逐行構(gòu)造IpEntry,?寫入list

public?IpTable(String?fileName)?{

BufferedReader?rd?=?null;

String?line;

table?=?new?LinkedList();

try?{

rd?=?new?BufferedReader(new?FileReader(fileName));

while?(true)?{

line?=?rd.readLine();

if?(null?==?line)

break;

table.add(new?IpEntry(line));

}

}?catch?(Exception?e)?{

e.printStackTrace();

}?finally?{

try?{

//IO資源必須在finally中關(guān)閉

rd.close();

}?catch?(IOException?e)?{

e.printStackTrace();

}

}

}

//匹配第一條

public?IpEntry?matchFirst(long?ip)?{

for?(IpEntry?entry?:?table)?{

if?(entry.start?<=?ip?&&?entry.end?>=?ip)

return?entry;

}

return?null;

}

//匹配所有

public?IpEntry[]?matchAll(long?ip)?{

List?list?=?new?ArrayList();

for?(IpEntry?entry?:?table)?{

if?(entry.start?<=?ip?&&?entry.end?>=?ip)

list.add(entry);

}

return?list.toArray(new?IpEntry[list.size()]);

}

//靜態(tài)方法

static?final?String?IP_TABLE_FILE_NAME?=?"E://12.txt";

static?IpTable?instance?=?null;

public?static?IpEntry?match(long?ip)?{

//僅在第一次調(diào)用時(shí),初始化靜態(tài)實(shí)例讀取文件

if?(instance?==?null)

instance?=?new?IpTable(IP_TABLE_FILE_NAME);

return?instance.matchFirst(ip);

}

//你要的方法

public?static?String?getIpCountry(String?ip)?{

return?match(ipToLong(ip)).getCountry();????//你自己的ipToLong方法

}

//模擬測試

public?static?void?main(String[]?args)?{

String?ip[]?=?{

"192.168.1.1",

//...

"220.10.10.135"

};

for?(int?i?=?0;?i?

System.out.println(IpTable.getIpCountry(ip[i]));

}

}

}

可能你一下轉(zhuǎn)不過來,根據(jù)你代碼里給的結(jié)構(gòu)給你寫了個(gè)完整的示例。

主要就是把文件內(nèi)容讀取后格式化放在內(nèi)存對象中,讓后只要在對象中查找匹配,就不用再去讀取文件了。關(guān)于性能優(yōu)化的話,因?yàn)槊看味际琼樞虻檎?#xff0c;所以用了LinkedList,其他的話暫時(shí)也想不出什么可以優(yōu)化的地方了

總結(jié)

以上是生活随笔為你收集整理的Java第一次读文件慢_Java 关于文件读取速度问题,求助,谢谢啦的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。