2009年5月7号
根据crazycode前辈的建议修改了ReadIPInfoFileUtil。java的代码,希望更多的前辈提点。。
=================我是分割线========================

=================我是分割线========================
package g.cms.util;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.HashSet;
import java.util.Set;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
* @author Jane(吴贞贞)
* @email myhongkongzhen@gmail.com
* @since JDK 1.6
* @alter 2009年5月7号
* @version 1.0 2009年4月29号
*/
public class ReadIPInfoFileUtil {
private static final Log log = LogFactory.getLog(ReadIPInfoFileUtil.class);
// private static Properties pathNameProperties = new Properties();
private static Set<String> ipInfosList = null;
static {
log.debug("IPInfo.properties loading...");
InputStream is = null;
is = ReadIPInfoFileUtil.class.getClassLoader().getResourceAsStream(
"IPInfoProperties");
// String ipInfo = pathNameProperties.get("IP0").toString();
// log.debug(ipInfo);
ipInfosList = new HashSet<String>();
try {
String ipInfoFile = System.getProperty("user.dir");
log.debug(ipInfoFile);
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String ipInfo = null;
int i = 0;
do {
i++;
ipInfo = br.readLine();
if (ipInfo != null) {
ipInfo = ipInfo.trim();
/* Test Logging */
// log.debug("THIS FILE INCLUDE IP INFORMATIONS : " + i);
log.debug(ipInfo);
ipInfosList.add(ipInfo);
}
} while (ipInfo != null);
log.debug("THIS FILE INCLUDE IP INFORMATIONS : "
+ ipInfosList.size());
} catch (IOException ioe) {
log.debug("IP INFOMATION LOAD EXCEPTION !");
ioe.printStackTrace();
} finally {
try {
if (is != null) {
is.close();
is = null;
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static Set<String> readIPInfos() {
return ipInfosList;
}
public static void main(String[] args) {
ReadIPInfoFileUtil.readIPInfos();
}
}
=================我是分割线========================
页面排版问题没有研究明白,如果代码看的比较吃力,请下载附件看,为您带来的不便,深表歉意

- 大小: 17.6 KB
分享到:
相关推荐
4. **自定义配置**:用户可以根据自己的需求配置统计规则,例如,是否包含特定文件类型,或者是否忽略某些特定的代码块。 5. **报告生成**:插件还可以生成详细的统计报告,这些报告可以用于团队之间的沟通,或者...
源代码部分可能包括用特定编程语言(如ActionScript或JavaScript)编写的代码,这些代码负责构建和交互式的甘特图功能。开发者可以研究这些源代码来了解如何实现甘特图的各种特性,比如动态更新、拖放调整、滚动查看...
3. **版本控制操作**:在项目浏览器中,右键点击文件或目录,可以选择一系列SVN操作,例如“Team”菜单下的“Add to Version Control”将文件添加到版本控制系统,“Commit”提交更改,“Update”获取最新版本,...
它确保所有项目产出物(如代码、文档等)都得到适当的版本控制,避免版本混乱。配置管理计划应包括以下要素: 1. **版本控制**:定义如何命名和管理不同版本的项目成果,以便追踪变化。 2. **变更控制**:建立一个...
9. **版本控制集成**:它能与常见的版本控制系统如Git、SVN等无缝集成,方便进行代码版本管理和协同开发。 10. **性能优化**:Visual Assist经过优化,即使在处理大型项目时也能保持响应速度,减少了因IDE性能问题...
3. **自动完成和提示**:Subclipse支持智能感知和代码补全,当用户在提交注释或执行其他SVN操作时,可以提供自动完成建议,减少错误和提高效率。 4. **与Eclipse无缝集成**:Subclipse将SVN的操作集成到Eclipse的...
你可以根据需要修改这个文件,创建自己的主题。 5. `index.html`:示例页面,展示了Pickadate.js的使用方法和基本功能。 在实际应用中,你可以通过HTML元素的`data-`属性或者JavaScript直接调用API来初始化Picka...
开发者可以根据自己的需求调整这些参数,而无需改动源代码。配置文件可能采用XML、JSON或其他格式,方便读写和解析。 在使用这个3D饼图资源时,你需要有一定的ActionScript(Flash编程语言)基础,以便理解和修改...
它允许开发者根据业务场景自定义控制规则,防止服务过载。 2. **熔断降级**:当服务出现异常时,Sentinel 可以自动触发熔断机制,快速失败并返回预设的降级结果,避免故障扩散。同时,它支持多种降级策略,如返回...
它通过提供一种依赖注入(Dependency Injection, DI)机制,实现了控制反转(Inversion of Control, IoC),从而降低了代码之间的耦合度,使得软件组件更容易测试、维护和复用。 #### Spring 3.1版本新特性 在...
SWF文件可以包含矢量图形、音频、视频和ActionScript代码,后者是一种基于ECMAScript的脚本语言,用于控制SWF的行为。HTML图文播放器则通过嵌入SWF文件,能够在网页上播放这些富媒体内容。 在创建HTML图文播放器时...
- **自动化办公软件操作**:例如,创建、读取、修改和保存Word文档,生成Excel报表等。 - **系统集成**:利用COM组件实现Windows系统服务的控制,如打印、邮件发送等。 - **桌面应用程序扩展**:为Java桌面应用添加...
7. **自定义样式**:通过修改CSS,你可以根据项目需求定制ColorBox的外观。这包括背景颜色、边框样式、过渡效果等。 8. **事件绑定**:ColorBox触发一系列事件,如"cbox_open"、"cbox_close"等,这使得在特定时刻...
4. **修改系统配置**:打开“系统属性”(通过右击“我的电脑”选择属性),在“高级”标签页点击“启动和恢复”设置,取消任何与Windows Search相关的启动选项。 5. **重启计算机**:完成以上步骤后,重启电脑使...
- 为了保持系统的安全性,建议定期检查并更新JDK到最新版本,以修复已知的安全漏洞和性能优化。 - Oracle官方会定期发布更新,如8u172、8u173等,用户应关注并及时升级。 总之,JDK 8u171是Java开发者不可或缺的...
因此,建议从Adobe官方网站或信誉良好的第三方网站获取汉化补丁,并确保补丁与你的Photoshop CS6版本相匹配。 在使用Photoshop CS6的过程中,汉化补丁可以帮助用户更快速地理解和操作各种工具和功能,如图层管理、...
4. **可修改性**:设计说明书应留有一定的灵活性,方便在开发过程中根据实际情况进行调整。 5. **可读性**:使用标准格式和术语,方便团队成员阅读和交流。 6. **可验证性**:设计应能够通过测试验证其正确性和...
1. 可编辑性:在ExtJS的Grid中,可编辑性是通过使用CellEditing或RowEditing插件来实现的。用户可以点击单元格直接修改数据,这些更改会实时反映到数据源中。为了创建一个可编辑的进度条列,我们需要自定义一个编辑...
要求 带有子模块支持的 git 1.5 一步一步安装 首先安装 git 克隆 git://github.... 您可能需要更改 ~/.emacs.d/my-custom.el 以适合您的系统。 更新 cd ~/.emacs.d 拉git子模块更新
通过对数据模型的理解、合理的数据存储设计、高效的访问优化以及严格的数据有效性检查,可以大大提高系统的整体性能和稳定性。在实际项目中,应根据具体情况灵活运用这些原则和技术,以达到最佳效果。