linkdata.java
来自「一个日本流行的,功能较全的开源Web办公管理(Groupware)系统。」· Java 代码 · 共 160 行
JAVA
160 行
package jp.co.sjts.gsession.link;
/*
* 儕儞僋僨乕僞 LinkData.java
* Copyright (C) 1999-2000 Japan Total System Co,LTD
* Satoru K <koni@sjts.co.jp>
*/
import java.io.File;
import java.io.BufferedReader;
import java.io.PrintWriter;
import java.io.IOException;
import java.util.StringTokenizer;
import java.util.Set;
import java.util.Map;
import java.util.HashMap;
import java.util.Collections;
import java.util.Collection;
import java.util.Iterator;
import jp.co.sjts.gsession.tools.*;
public class LinkData extends GSTextFile
{
class LinkInfo{
int linkId=0; // 儕儞僋ID
String url = null; // 儕儞僋愭URL
String msg = null; // 旛峫
LinkInfo(int linkId,String url,String msg){
this.linkId = linkId;
this.url = url;
this.msg = msg;
}
}
private File file=null;
private Map linkMap = null; // 儕儞僋忣曬攝楍
// 僐儞僗僩儔僋僞
public LinkData(String dir,int DirId) throws GSException
{
File dirfile = new File(dir);
// 僨傿儗僋僩儕偑懚嵼偟側偄応崌偼,怴婯偵嶌惉偡傞丅
if(!dirfile.exists())
dirfile.mkdirs();
file = new File(dirfile,Integer.toString(DirId));
linkMap = Collections.synchronizedMap(new HashMap());
if(!file.exists())
Save();
}
protected File GetFile()
{
return file;
}
// 僨乕僞偺撉崬傒
synchronized protected void Read(BufferedReader bf)
throws GSException
{
try {
linkMap.clear();
String buf = bf.readLine();
while(buf!=null){
StringTokenizer st = new StringTokenizer(buf,";");
Integer linkId = new Integer(st.nextToken());
String url = st.nextToken();
String msg = "丂";
if(st.hasMoreTokens())
msg = st.nextToken();
linkMap.put(linkId,new LinkInfo(linkId.intValue(),url,GSHtml.BRtoReturn(msg)));
buf = bf.readLine();
}
} catch(IOException e){
throw new GSException("IO僄儔乕",e);
}
}
// 僨乕僞偺彂弌偟
synchronized protected void Write(PrintWriter pw)
throws GSException
{
Collection cl = linkMap.values();
Iterator it = cl.iterator();
while(it.hasNext()){
LinkInfo li = (LinkInfo)it.next();
pw.println(Integer.toString(li.linkId)+";"+li.url+";"+GSHtml.ReturntoBR(li.msg));
}
}
synchronized int[] getLinkIDs()
throws GSException
{
Set key = linkMap.keySet();
if(key.size()<=0)
return null;
int[] lIds = new int[key.size()];
Iterator it = key.iterator();
for(int i=0;it.hasNext();i++)
lIds[i] = ((Integer)it.next()).intValue();
return lIds;
}
synchronized String getLinkMsg(int id)
throws GSException
{
LinkInfo li = (LinkInfo)linkMap.get(new Integer(id));
return li.msg;
}
synchronized String getLinkUrl(int id)
throws GSException
{
LinkInfo li = (LinkInfo)linkMap.get(new Integer(id));
return li.url;
}
// 怴婯儕儞僋搊榐
synchronized void addLink(int linkId,String address,String memo)
throws GSException
{
LinkInfo link = new LinkInfo(linkId,address,memo);
linkMap.put(new Integer(linkId),link);
}
// 儕儞僋偺嶍彍
synchronized void delLink(int linkId)
throws GSException
{
LinkInfo linkInfo = (LinkInfo)linkMap.get(new Integer(linkId));
if(linkInfo==null)
return;
linkMap.remove(new Integer(linkId));
}
// 儕儞僋曇廤
synchronized void editLink(int linkId,String url,String msg)
throws GSException
{
LinkInfo linkInfo = (LinkInfo)linkMap.get(new Integer(linkId));
if(linkInfo==null)
return;
linkInfo.url = url;
linkInfo.msg = msg;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?