- 浏览: 416434 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
jxausea:
java.io.IOException: Keystore w ...
一个opoenfire与smack的例子 -
517913840:
请问 为什么我用roster.getPresence取用户的在 ...
一个opoenfire与smack的例子 -
cymmint:
请了,大哥
轻松利用JQuery实现ajax跨域访问 -
lishujuncat:
多谢,学下了
一个opoenfire与smack的例子 -
InSoNia:
不错
最简单的ajax例子
/***
这里用到了一个工具类StringUtil.java,在博客中有StringUtil.java这个类的说明
*/
package com.huanglq.huanglq_test;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import com.huanglq.util.DBUtil;
import com.huanglq.util.Log;
import com.huanglq.util.StringUtil;
public class KeywordDaoImpl{
//在这里做一次转义处理
public static String[] getEscapedKeyWords(String keyword,int count){
String[] keyWords=getKeywords(keyword, count);
for(int i=0;i<keyWords.length;i++){
System.out.println(keyWords[i]);
if(keyWords[i].contains("\\")){
keyWords[i]=StringUtil.replace(keyWords[i], "\\", "\\\\");
}
if(keyWords[i].contains("'")){
keyWords[i]=StringUtil.replace(keyWords[i], "'", "\\'");
}
}
return keyWords;
}
/***************************************************************************
* 要先执行setKeywords(String filePath)一次,才能执行getKeywords(String keyword,int
* count,String filePath);
* 返回包合关键字的集合,keyword是要搜索的关键字,count是显示的个数,filePath是keywords存放的文件路径
*/
public static String[] getKeywords(String keyword, int count) {
// 文件中读取内容,返回一个keyword的String[]
String[] keywords = KEY_WORDS;
StringBuffer br = new StringBuffer("");
// 要返回的关键字集合String[]
String[] keys = new String[count];
List keysList = new ArrayList();
List keysList2 = new ArrayList();
for (int i = 0; i < keywords.length; i++) {
if ((keywords[i].toLowerCase()).startsWith(keyword.toLowerCase())) {
keysList.add(keywords[i].trim());
if (keysList.size() >= count)
break;
} else if (
(!(keywords[i].toLowerCase()).startsWith(keyword.toLowerCase()))
&& (keywords[i].toLowerCase()).contains(keyword.toLowerCase())) {
keysList2.add(keywords[i].trim());
}
}
Iterator it = keysList.iterator();
while (it.hasNext()) {
br.append((String) it.next() + "\n");
}
// 如果keyword开头的不够count的数,就把包含的也写进来,加到count,
int countKeyWord = keysList.size() ;
if (countKeyWord < count) {
Iterator it2 = keysList2.iterator();
while (it2.hasNext()) {
br.append((String) it2.next() + "\n");
countKeyWord++;
if (countKeyWord > count) {
break;
}
}
}
String tempKeys = br.toString();
keys = tempKeys.split("\n");
return keys;
}
// 读取文件-------------从文件中读取内容,返回一个keyword的String[]
private static String[] KEY_WORDS = null;
static {
refeshKeyWord();
}
//刷新keyword的文件
public void refeshKeyWordToFile(){
refeshKeyWord();
}
//初始化/刷新KEY_WORDS
public static void refeshKeyWord() {
FileReader fr = null;
BufferedReader br = null;
StringBuffer keys = new StringBuffer("");
try {
// 文件路径,这里的文件路径可以写在全局变量或配置在xml或.properties文件中
fr = new FileReader("/usr/work4/keyword.txt");
br = new BufferedReader(fr);
String len = "";
int index=1;
while ((len = br.readLine()) != null) {
//这里这样做是为了方便后面用换行来分隔字符串
keys.append(len.trim() + "\n");
}
String temp = keys.toString();
KEY_WORDS = temp.split("\n");
} catch (Exception e) {
e.printStackTrace();
} finally {
if (br != null) {
try {
fr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (fr != null) {
try {
fr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
public static String[] getKeyWord() {
return KEY_WORDS;
}
//这里用到来了Configuration.java,和refeshKeyword.xml
//Configuration是读取xml的类
//txtCount,txt[]的值都是从xml文件读取回来的
private static int txtCount;
private static String txt[] =new String[10];
static{
txtCount = Integer.parseInt(Configuration.getConfigValue(
"refeshKeyword.xml", "refeshKeyword", "TxtCount"));
for (int i = 1; i <= txtCount; i++) {
txt[i - 1] = Configuration.getConfigValue("refeshKeyword.xml",
"refeshKeyword", "Txt" + i);
}
}
// 找关键字的语句
String KEYWORD_SQL = "select top 10000 keyword,count(1) as cnt from huanglq90_other..all_keyword "
+ "group by keyword order by cnt desc";
// 生成关键字文件(add by huanglinquan)
public void setKeywords() {
String[] keyWords = null;
String temp = null;
StringBuffer sb = new StringBuffer("");
List keyWordList = new ArrayList();
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
FileWriter fw = null;
try {
conn = DBUtil.gethuanglq90Conn();//链接JNDI
//conn = DBUtil.getConnection(url2, driver, username, password);
pstmt = conn.prepareStatement(KEYWORD_SQL);
rs = pstmt.executeQuery();
while (rs.next()) {
keyWordList.add(rs.getString("keyword"));
}
for (int k = 0; k < txtCount; k++) {
fw = new FileWriter(txt[k]);
keyWords = new String[keyWordList.size()];
for (int i = 0; i < keyWords.length; i++) {
keyWords[i] = (String) keyWordList.get(i);
sb.append(keyWords[i] + "\n");
}
temp = sb.toString();
fw.write(temp);
fw.flush();
fw.close();
sb = new StringBuffer("");
Log.debug(this, "getKeywords()", KEYWORD_SQL);
}
} catch (Exception e) {
Log.error(this, "getKeywords()", e.getMessage());
} finally {
DBUtil.clean(this, rs);
DBUtil.clean(this, pstmt);
DBUtil.clean(this, conn);
}
}
}
===========================================
Suggestion.java是KeywordDaoImp.的改进,但是没有把setKeywords()写进来,
不过它还有一个不断调用getSuggest(String key, int count)时,在每天的指定时间就会刷新静态初始化块
package com.huanglq.huanglq_test;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.text.DateFormat;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import java.util.Date;
import com.huanglq.util.Log;
import com.huanglq.util.StringUtil;
public class Suggestion {
private static String path = "/usr/work4/keyword.txt";
// 返回关键词的个数
private static final int DEFAULT_COUNT = 10;
// 重新读取关键词数据的时间,8即是早晨8点,默认为8
private static final int LOAD_HOUR = 8;
// 重新读取关键词数据的间隔时间,单位:微妙;默认值为1天
private static final int LOAD_INTERVAL = 24 * 60 * 60 * 1000;
// 包含所有关键词的列表
private static String[] words = null;
private static long loodTime = 0;
private static final Locale locale = Locale.SIMPLIFIED_CHINESE;
// yyyy-mm-dd
private static final DateFormat FORMAT_DATE = DateFormat.getDateInstance(
DateFormat.MEDIUM, locale);
// yyyy-mm-dd HH:SS:MM
private static final DateFormat FORMAT_DTTM = DateFormat
.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM, locale);
static {
load();
}
public String[] get(String key, int count) {
return getEscapedSuggest(key, count);
}
public String[] get(String key) {
return get(key, DEFAULT_COUNT);
}
public static String[] getEscapedSuggest(String key, int count) {
String[] suggest = getSuggest(key, count);
for (int i = 0; i < suggest.length; i++) {
if (suggest[i].contains("\\")) {
suggest[i] = StringUtil.replace(suggest[i], "\\", "\\\\");
}
if (suggest[i].contains("'")) {
suggest[i] = StringUtil.replace(suggest[i], "'", "\\'");
}
}
return suggest;
}
public static String[] getSuggest(String key, int count) {
if (System.currentTimeMillis() >= loodTime)
load();
String[] suggest = null;
List keysList = new ArrayList();
List keysList2 = new ArrayList();
for (int i = 0; i < words.length; i++) {
if ((words[i].toLowerCase()).startsWith(key.toLowerCase())) {
keysList.add(words[i].trim());
if (keysList.size() >= count)
break;
} else if (words[i].toLowerCase().indexOf(key.toLowerCase()) > 0) {
if (keysList2.size() >= count)
continue;
keysList2.add(words[i].trim());
}
}
int need = count - keysList.size();
for (int i = 0; i < need; i++) {
if (keysList2.size() == 0 || keysList2.size() < (i + 1))
break;
keysList.add(keysList2.get(i));
}
suggest = new String[keysList.size()];
for (int i = 0; i < keysList.size(); i++) {
suggest[i] = (String) keysList.get(i);
}
return suggest;
}
static public void load() {
try {
System.out.println("load()");
String time = FORMAT_DATE.format(new Date()) + " " + LOAD_HOUR + ":0:0";
loodTime = FORMAT_DTTM.parse(time).getTime() + LOAD_INTERVAL;
} catch (ParseException e) {
Log.error(Suggestion.class, "load{}", e.getMessage());
}
FileReader fr = null;
BufferedReader br = null;
StringBuffer sb = new StringBuffer();
try {
fr = new FileReader(path);
br = new BufferedReader(fr);
String line = null;
while ((line = br.readLine()) != null) {
sb.append(line.trim() + "\n");
}
words = sb.toString().split("\n");
} catch (Exception e) {
Log.error(Suggestion.class, "reload()", e.getMessage());
} finally {
try {
br.close();
fr.close();
} catch (IOException e) {
Log.error(Suggestion.class, "reload()", e.getMessage());
}
}
}
public static String getPath() {
return path;
}
public static void setPath(String path) {
Suggestion.path = path;
}
}
这里用到了一个工具类StringUtil.java,在博客中有StringUtil.java这个类的说明
*/
package com.huanglq.huanglq_test;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import com.huanglq.util.DBUtil;
import com.huanglq.util.Log;
import com.huanglq.util.StringUtil;
public class KeywordDaoImpl{
//在这里做一次转义处理
public static String[] getEscapedKeyWords(String keyword,int count){
String[] keyWords=getKeywords(keyword, count);
for(int i=0;i<keyWords.length;i++){
System.out.println(keyWords[i]);
if(keyWords[i].contains("\\")){
keyWords[i]=StringUtil.replace(keyWords[i], "\\", "\\\\");
}
if(keyWords[i].contains("'")){
keyWords[i]=StringUtil.replace(keyWords[i], "'", "\\'");
}
}
return keyWords;
}
/***************************************************************************
* 要先执行setKeywords(String filePath)一次,才能执行getKeywords(String keyword,int
* count,String filePath);
* 返回包合关键字的集合,keyword是要搜索的关键字,count是显示的个数,filePath是keywords存放的文件路径
*/
public static String[] getKeywords(String keyword, int count) {
// 文件中读取内容,返回一个keyword的String[]
String[] keywords = KEY_WORDS;
StringBuffer br = new StringBuffer("");
// 要返回的关键字集合String[]
String[] keys = new String[count];
List keysList = new ArrayList();
List keysList2 = new ArrayList();
for (int i = 0; i < keywords.length; i++) {
if ((keywords[i].toLowerCase()).startsWith(keyword.toLowerCase())) {
keysList.add(keywords[i].trim());
if (keysList.size() >= count)
break;
} else if (
(!(keywords[i].toLowerCase()).startsWith(keyword.toLowerCase()))
&& (keywords[i].toLowerCase()).contains(keyword.toLowerCase())) {
keysList2.add(keywords[i].trim());
}
}
Iterator it = keysList.iterator();
while (it.hasNext()) {
br.append((String) it.next() + "\n");
}
// 如果keyword开头的不够count的数,就把包含的也写进来,加到count,
int countKeyWord = keysList.size() ;
if (countKeyWord < count) {
Iterator it2 = keysList2.iterator();
while (it2.hasNext()) {
br.append((String) it2.next() + "\n");
countKeyWord++;
if (countKeyWord > count) {
break;
}
}
}
String tempKeys = br.toString();
keys = tempKeys.split("\n");
return keys;
}
// 读取文件-------------从文件中读取内容,返回一个keyword的String[]
private static String[] KEY_WORDS = null;
static {
refeshKeyWord();
}
//刷新keyword的文件
public void refeshKeyWordToFile(){
refeshKeyWord();
}
//初始化/刷新KEY_WORDS
public static void refeshKeyWord() {
FileReader fr = null;
BufferedReader br = null;
StringBuffer keys = new StringBuffer("");
try {
// 文件路径,这里的文件路径可以写在全局变量或配置在xml或.properties文件中
fr = new FileReader("/usr/work4/keyword.txt");
br = new BufferedReader(fr);
String len = "";
int index=1;
while ((len = br.readLine()) != null) {
//这里这样做是为了方便后面用换行来分隔字符串
keys.append(len.trim() + "\n");
}
String temp = keys.toString();
KEY_WORDS = temp.split("\n");
} catch (Exception e) {
e.printStackTrace();
} finally {
if (br != null) {
try {
fr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (fr != null) {
try {
fr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
public static String[] getKeyWord() {
return KEY_WORDS;
}
//这里用到来了Configuration.java,和refeshKeyword.xml
//Configuration是读取xml的类
//txtCount,txt[]的值都是从xml文件读取回来的
private static int txtCount;
private static String txt[] =new String[10];
static{
txtCount = Integer.parseInt(Configuration.getConfigValue(
"refeshKeyword.xml", "refeshKeyword", "TxtCount"));
for (int i = 1; i <= txtCount; i++) {
txt[i - 1] = Configuration.getConfigValue("refeshKeyword.xml",
"refeshKeyword", "Txt" + i);
}
}
// 找关键字的语句
String KEYWORD_SQL = "select top 10000 keyword,count(1) as cnt from huanglq90_other..all_keyword "
+ "group by keyword order by cnt desc";
// 生成关键字文件(add by huanglinquan)
public void setKeywords() {
String[] keyWords = null;
String temp = null;
StringBuffer sb = new StringBuffer("");
List keyWordList = new ArrayList();
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
FileWriter fw = null;
try {
conn = DBUtil.gethuanglq90Conn();//链接JNDI
//conn = DBUtil.getConnection(url2, driver, username, password);
pstmt = conn.prepareStatement(KEYWORD_SQL);
rs = pstmt.executeQuery();
while (rs.next()) {
keyWordList.add(rs.getString("keyword"));
}
for (int k = 0; k < txtCount; k++) {
fw = new FileWriter(txt[k]);
keyWords = new String[keyWordList.size()];
for (int i = 0; i < keyWords.length; i++) {
keyWords[i] = (String) keyWordList.get(i);
sb.append(keyWords[i] + "\n");
}
temp = sb.toString();
fw.write(temp);
fw.flush();
fw.close();
sb = new StringBuffer("");
Log.debug(this, "getKeywords()", KEYWORD_SQL);
}
} catch (Exception e) {
Log.error(this, "getKeywords()", e.getMessage());
} finally {
DBUtil.clean(this, rs);
DBUtil.clean(this, pstmt);
DBUtil.clean(this, conn);
}
}
}
===========================================
Suggestion.java是KeywordDaoImp.的改进,但是没有把setKeywords()写进来,
不过它还有一个不断调用getSuggest(String key, int count)时,在每天的指定时间就会刷新静态初始化块
package com.huanglq.huanglq_test;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.text.DateFormat;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import java.util.Date;
import com.huanglq.util.Log;
import com.huanglq.util.StringUtil;
public class Suggestion {
private static String path = "/usr/work4/keyword.txt";
// 返回关键词的个数
private static final int DEFAULT_COUNT = 10;
// 重新读取关键词数据的时间,8即是早晨8点,默认为8
private static final int LOAD_HOUR = 8;
// 重新读取关键词数据的间隔时间,单位:微妙;默认值为1天
private static final int LOAD_INTERVAL = 24 * 60 * 60 * 1000;
// 包含所有关键词的列表
private static String[] words = null;
private static long loodTime = 0;
private static final Locale locale = Locale.SIMPLIFIED_CHINESE;
// yyyy-mm-dd
private static final DateFormat FORMAT_DATE = DateFormat.getDateInstance(
DateFormat.MEDIUM, locale);
// yyyy-mm-dd HH:SS:MM
private static final DateFormat FORMAT_DTTM = DateFormat
.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM, locale);
static {
load();
}
public String[] get(String key, int count) {
return getEscapedSuggest(key, count);
}
public String[] get(String key) {
return get(key, DEFAULT_COUNT);
}
public static String[] getEscapedSuggest(String key, int count) {
String[] suggest = getSuggest(key, count);
for (int i = 0; i < suggest.length; i++) {
if (suggest[i].contains("\\")) {
suggest[i] = StringUtil.replace(suggest[i], "\\", "\\\\");
}
if (suggest[i].contains("'")) {
suggest[i] = StringUtil.replace(suggest[i], "'", "\\'");
}
}
return suggest;
}
public static String[] getSuggest(String key, int count) {
if (System.currentTimeMillis() >= loodTime)
load();
String[] suggest = null;
List keysList = new ArrayList();
List keysList2 = new ArrayList();
for (int i = 0; i < words.length; i++) {
if ((words[i].toLowerCase()).startsWith(key.toLowerCase())) {
keysList.add(words[i].trim());
if (keysList.size() >= count)
break;
} else if (words[i].toLowerCase().indexOf(key.toLowerCase()) > 0) {
if (keysList2.size() >= count)
continue;
keysList2.add(words[i].trim());
}
}
int need = count - keysList.size();
for (int i = 0; i < need; i++) {
if (keysList2.size() == 0 || keysList2.size() < (i + 1))
break;
keysList.add(keysList2.get(i));
}
suggest = new String[keysList.size()];
for (int i = 0; i < keysList.size(); i++) {
suggest[i] = (String) keysList.get(i);
}
return suggest;
}
static public void load() {
try {
System.out.println("load()");
String time = FORMAT_DATE.format(new Date()) + " " + LOAD_HOUR + ":0:0";
loodTime = FORMAT_DTTM.parse(time).getTime() + LOAD_INTERVAL;
} catch (ParseException e) {
Log.error(Suggestion.class, "load{}", e.getMessage());
}
FileReader fr = null;
BufferedReader br = null;
StringBuffer sb = new StringBuffer();
try {
fr = new FileReader(path);
br = new BufferedReader(fr);
String line = null;
while ((line = br.readLine()) != null) {
sb.append(line.trim() + "\n");
}
words = sb.toString().split("\n");
} catch (Exception e) {
Log.error(Suggestion.class, "reload()", e.getMessage());
} finally {
try {
br.close();
fr.close();
} catch (IOException e) {
Log.error(Suggestion.class, "reload()", e.getMessage());
}
}
}
public static String getPath() {
return path;
}
public static void setPath(String path) {
Suggestion.path = path;
}
}
评论
2 楼
qsrock
2007-11-02
for (int k = 0; k < txtCount; k++) {
fw = new FileWriter(txt[k]);
temp = sb.toString();
fw.write(temp);
fw.flush();
fw.close();
还要try-catch一次
fw = new FileWriter(txt[k]);
temp = sb.toString();
fw.write(temp);
fw.flush();
fw.close();
还要try-catch一次
1 楼
qsrock
2007-11-02
对KeywordDaoImpl 的setKeyWords()方法的优化:
// 生成关键字文件(add by huanglinquan)
public void setKeywords() {
String[] keyWords = null;
String temp = null;
StringBuffer sb = new StringBuffer("");
List keyWordList = new ArrayList();
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
FileWriter fw = null;
try {
conn = DBUtil.gethuanglq90Conn();//链接JNDI
//conn = DBUtil.getConnection(url2, driver, username, password);
pstmt = conn.prepareStatement(KEYWORD_SQL);
rs = pstmt.executeQuery();
while (rs.next()) {
keyWordList.add(rs.getString("keyword"));
}
Log.debug(this, "getKeywords()", KEYWORD_SQL);
}
} catch (Exception e) {
Log.error(this, "getKeywords()", e.getMessage());
} finally {
DBUtil.clean(this, rs);
DBUtil.clean(this, pstmt);
DBUtil.clean(this, conn);
}
//sb生成一次就可以了,不必写入循环中
for (int i = 0; i < keyWordList.size(); i++) {
sb.append((String) keyWordList.get(i) + "\n");
}
for (int k = 0; k < txtCount; k++) {
fw = new FileWriter(txt[k]);
temp = sb.toString();
fw.write(temp);
fw.flush();
fw.close();
}
以后要注意写完程序时要看程序是否可以继续优化,
涉及到数据库和IO方面的资源要尽可能快地关闭,不要在里面做无谓的操作。
// 生成关键字文件(add by huanglinquan)
public void setKeywords() {
String[] keyWords = null;
String temp = null;
StringBuffer sb = new StringBuffer("");
List keyWordList = new ArrayList();
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
FileWriter fw = null;
try {
conn = DBUtil.gethuanglq90Conn();//链接JNDI
//conn = DBUtil.getConnection(url2, driver, username, password);
pstmt = conn.prepareStatement(KEYWORD_SQL);
rs = pstmt.executeQuery();
while (rs.next()) {
keyWordList.add(rs.getString("keyword"));
}
Log.debug(this, "getKeywords()", KEYWORD_SQL);
}
} catch (Exception e) {
Log.error(this, "getKeywords()", e.getMessage());
} finally {
DBUtil.clean(this, rs);
DBUtil.clean(this, pstmt);
DBUtil.clean(this, conn);
}
//sb生成一次就可以了,不必写入循环中
for (int i = 0; i < keyWordList.size(); i++) {
sb.append((String) keyWordList.get(i) + "\n");
}
for (int k = 0; k < txtCount; k++) {
fw = new FileWriter(txt[k]);
temp = sb.toString();
fw.write(temp);
fw.flush();
fw.close();
}
以后要注意写完程序时要看程序是否可以继续优化,
涉及到数据库和IO方面的资源要尽可能快地关闭,不要在里面做无谓的操作。
发表评论
-
在linux上安装Memcached Server
2010-06-07 09:09 1774本文转自http://hi.baidu.com ... -
java冒泡法
2009-12-23 19:51 2152冒泡算法思想是每次从数组开始端开始比较相邻两元素,把第i大数冒 ... -
一个ssh最简单整合的例子,很多地方都没有作
2009-09-23 16:47 2082具体看附件, 用struts1.3,action也交给spri ... -
Effective Java 策略枚举
2009-08-19 09:57 1984//策略枚举 public enum PayrollDay ... -
限制频繁刷新
2009-04-16 15:30 4617通过session限制用户频繁(限制了一定时间里最多能刷多少次 ... -
用java-io查找包含关键字的文件或用某些字符替代掉指定的字符,大小写转换
2009-01-09 15:12 4565import java.io.BufferedReader; ... -
常用正则表达式
2008-08-21 15:52 25411。^\d+$ //匹配非负整数(正整数 + 0) 2。^[ ... -
java读取多数据集合片段
2008-05-07 14:19 0// 生成xml物理文件 public boolean g ... -
将Java源程序制作成exe文件
2008-02-27 08:36 17一、获取你的源程序的class文件 (e.g. D:\sour ... -
简易图书馆系统
2008-02-26 18:20 16全部文件都在附件中 /** * @author huangl ... -
用Java制作网络文件下载系统
2008-01-16 08:58 51由于Linux操作系统的兴起和Java语言的日渐成熟,使用Ja ... -
EL表达式在j2ee5使用不了的解决方法和EL表示根路径以及相对路径和绝对路径问题
2008-01-15 11:01 4687添加<%@page isELIgnored=" ... -
java日期类的简单(个人)使用1:
2008-01-12 17:07 1529经常调用某方法,某方法隔一段时间重新调用一次静态初始化 pac ... -
今天帮人解决的一个Map的问题,不过有得优化,暂时贴在这里先
2007-12-27 16:31 1185/* * 问题: * HashMap<Stri ... -
java.lang.Comparable应用1:比较和排序
2007-12-27 14:39 2306我个人觉得看例子说话 ... -
Map 的一点分析:在java.util.Map加入了一样的key,则这个key值的value会覆盖掉原来的value
2007-12-27 14:35 9886在java.util.Map加入了一样的key,则这个key值 ... -
一个日期时间的工具类
2007-11-28 11:32 2103package com.huanglq.util; im ... -
一个Map的工具类
2007-11-28 11:28 2133package com.huanglq.util; im ... -
在不断调用某方法的同时,间隔一段时间,在指定时间刷新静态初始化块中的方法
2007-11-01 11:00 1923//间隔一段时间就在调用时刷新静态初始化块中的方法 impor ... -
在 Java 应用程序中计划重复执行的任务[转贴]
2007-10-31 10:03 1868介绍 Java 语言中 Timer 类的一种简洁用法 dev ...
相关推荐
读取 写入 读取写入文本文件 读取 写入 读取写入文本文件 注意 out 关键字
关于功能5修改编码格式——写该功能主要因为,经常遇到一些文本文件由于编码格式不一致的问题,导致无法用写好的算法进行读取。 对于该功能需要注意的是,编码格式不能写错,请在使用前先备份,写错有可能导致文件被...
将对应file.txt和两个.bat文件放在需要复制或剪切的文件夹下,将需要复制或剪切的文件夹或文件名写入file.txt中,双击运行其中一个.bat即可复制或剪切txt里的文件夹或文件至E:\123文件夹中。
今天小编大家分享一篇python实现按关键字筛选日志文件方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
Elasticsearch Demo 读取word内容写入到Es上并展示在WebFrom页面上,简单查询根据关键字检索 并高亮显示。
PHP实现查询关键字描红 一、 开发环境 ...本案例主要使用PHP 7中的文件操作函数对文件内容进行写入和读取操作,同时使用字符串替换函数str_replace(),从而来实现将查询的关键字进行描红输出的功能。
利用Java swing 对csv和excel文件进行读写;并且可以同时读取5个文件的数量;通过关键字配置来读文件,还有就是通过POI CSVWriter等类的使用来对excel和csv等文件进行操作
C#读取INI文件的代码,// <summary> /// INI配置写入 /// </summary> /// 段落名称</param> /// 关键字</param> /// 关键字的数值</param> /// 文件完整路径和名称</param> /// <returns></returns>
pycdb 使用python读取.cdb文件。 仅支持部分关键字。 该程序实际上有两个部分。 第一部分称为CDB_Reader,用于解析cdb文件并将数据存储在特定的数据结构中。 第二部分IBE_Writer用于将cdb数据写入simdroid,大多数...
权限管理包括:完全控制、修改、读取和执行、列出文件夹内容、读取、写入共6个模块; 13.实现了”最近访问“的功能,用户可以在该功能区找到最近使用的文件,并双击打开查看; 14.实现了新建文件功能,用户可以根据...
将数据库配置加密写入文件,并解密读取,非常实用。在VB.NET验证通过
如下图所示,有一个近2000行的数据表,需要把其中含有关键字‘颈廓清术,中央组(VI组)’的数据所在行都都给抽取出来,且提取后的表格不能改变原先的顺序。 问题分析: 一开始想用excel的筛选功能,但是发现只提供...
难点:文件的打开,读取,写入 <体会一改进冒泡法排序> 认识: 典型的二重循环 外循环次数由待排序数据的个数N决定 内循环N-1次 改进: 去除不可避免的二重循环 冒泡法在冒一次泡(即内重循环一次)就...
Exiv2读取图像扩展属性,内含exiv2-0.26-trunk.tar主程序源码,相关编译所需的包libexpat-R_2_1_0、zlib-1.2.9。可自行编译。方便快捷的使用在visual studio 的任何版本上。 图片元数据(Metadata) 是嵌入到图片...
用于读取和写入FITS文件的python库。 描述 这是用c和python编写的python扩展。 数据被读取到数字python数组中。 该软件包捆绑了cfitsio版本,无需安装自己的版本,也不会与已安装的版本冲突。 一些功能 读取和写入...
//读取文件 cout请输入源文件名(包括路径和后缀名):"; cin>>filename; ifstream infile(filename,ios::in); if (!infile) { cout无法打开文件 !!!"; } infile.getline(file,1000,EOF); infile.close();...
简明批处理教程22009年10月20日 星期二 下午 05:35 最近对于批处理技术的探讨比较热,也有不少好的批处理程序发布,但是如果没有一定的相关知识恐怕不容易看懂和理解这些批处理文件,也就更谈不上自己动手编写了,古...
写入文件可以使用fprintf()函数,例如`fprintf(out, ch);`用于将ch数组中的内容写入到out文件中。 2. 数学函数 C语言提供了多种数学函数,包括指数函数pow()、正弦函数sin()、余弦函数cos()、正切函数tan()等。...
JPhotoTagger自动读取标签的新的和已更改的附属文件,并更新它的数据库。双方甚至在不同的操作系统,您可以标记您的照片,如使用Adobe Photoshop Lightroom和JPhotoTagger:JPhotoTagger在每个系统上安装Java的运行...
从文件中的给定列表中读取关键字术语,从 HTRC 的 Solr 代理 AP 获取包含这些术语的卷的 id,然后将一组卷 id 写入文件。 用法:java -jar HTRC-Solr-query-to-volume-list.jar [查询] [端点] [输出文件] 论据: ...