📄 gstool.java
字号:
package jp.co.sjts.gsession.tools;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.StringTokenizer;
import java.util.ArrayList;
import java.util.Hashtable;
import java.util.Iterator;
import java.text.NumberFormat;
import java.text.DecimalFormat;
import java.text.FieldPosition;
/**
* <p>嫟捠娭悢掕媊僋儔僗 GSTool.java
* <p>Copyright (C) 1999-2000 Japan Total System Co,LTD
*
* @author Satoru K <koni@sjts.co.jp>
*/
public class GSTool {
static final String DELIMIT = "||DeLiMiT||";
static public String removeParaFormURI(String uri) {
String buf=null;
int idx=0;
if((idx=uri.indexOf('?')) == -1)
return uri;
buf = uri.substring(0,idx);
return buf;
}
/**
* 僼傽僀儖偺僐僺乕
*
* @param src(File) 僐僺乕尦偺File僆僽僕僃僋僩
* @param dst(File) 僐僺乕愭偺File僆僽僕僃僋僩
*/
static public void copyFile(File src,File dst) throws GSException {
if(!src.exists())
throw new GSException("僼傽僀儖偑懚嵼偟傑偣傫");
if(!src.isFile())
throw new GSException("僐僺乕尦偑僼傽僀儖偱偼偁傝傑偣傫");
if(!src.canRead())
throw new GSException("僐僺乕尦僼傽僀儖偑撉崬傒弌棃傑偣傫");
if(dst.exists()){
if(!dst.canWrite())
throw new GSException("僐僺乕愭僼傽僀儖偑懚嵼偟彂崬傒嬛巭偵側偭偰偄傑偡");
}else{
File dir = dst.getParentFile();
if(!dir.exists())
throw new GSException("僐僺乕愭偺僨傿儗僋僩儕偑懚嵼偟傑偣傫");
}
FileInputStream finstream=null;
FileOutputStream foutstream=null;
try{
finstream=new FileInputStream(src);
foutstream=new FileOutputStream(dst);
for(;;)
{
byte[] byteRead=new byte[1024];
int iRead=finstream.read(byteRead);
if(iRead==(-1))break;
foutstream.write(byteRead,0,iRead);
}
finstream.close();
foutstream.close();
}catch(FileNotFoundException e){
throw new GSException("僼傽僀儖偑懚嵼偟傑偣傫",e);
}catch(IOException e){
throw new GSException("僼傽僀儖IO僄儔乕",e);
}
}
/**
* 僨傿儗僋僩儕偺嶍彍
*
* @param dir 嶍彍偡傞僨傿儗僋僩儕偺File僆僽僕僃僋僩
*/
static public void deleteDir(File dir) throws GSException {
if(!dir.exists())
return;
if(!dir.isDirectory())
throw new GSException("僨傿儗僋僩儕偱偼偁傝傑偣傫丅");
File[] childDir = dir.listFiles(new DirFileFilter());
for(int i=0;i<childDir.length;i++){
deleteDir(childDir[i]);
}
File[] childFile = dir.listFiles(new FileFileFilter());
for(int i=0;i<childFile.length;i++){
if(!childFile[i].delete())
throw new GSException(childFile[i].getAbsolutePath()+"偺嶍彍偵幐攕偟傑偟偨丅");
}
if(!dir.delete())
throw new GSException(dir.getAbsolutePath()+"偺嶍彍偵幐攕偟傑偟偨丅");
}
/**
* 嵍懁偺侽傪僗儁乕僗偵曄姺偡傞
*
* @param num
* @return 曄姺屻偺暥帤楍
*/
static public String leftZeroToSpace(String num) {
boolean flg=true;
char[] src = num.toCharArray();
StringBuffer sb = new StringBuffer();
for(int i=0; i<src.length; i++) {
if((src[i]=='0') && flg) {
sb.append(' ');
} else {
flg = false;
sb.append(src[i]);
}
}
if(flg) {
sb.deleteCharAt(sb.length()-1);
sb.append('0');
}
return sb.toString();
}
/**
* 悢帤僼僅乕儅僢僩
*
* @param num 悢帤
* @param pattern 僷僞乕儞
* @return 僼僅乕儅僢僩偝傟偨悢帤暥帤楍
*/
static public String intDecFormat(int num,String pattern) {
String snum = Integer.toString(num);
int len=(snum.length()>pattern.length())?snum.length():pattern.length();
StringBuffer sb = new StringBuffer(len);
FieldPosition fp = new FieldPosition(NumberFormat.INTEGER_FIELD);
DecimalFormat df = new DecimalFormat(pattern);
df.format(num,sb,fp);
return sb.toString();
}
/**
* 傾僗僉乕悢帤暥帤楍傪儚僀僪暥帤楍偵曄姺偡傞
*
* @param num 傾僗僉乕悢帤暥帤楍
* @return 儚僀僪悢帤暥帤楍
*/
static public String asciiToWideDec(String num) {
char[] src = num.toCharArray();
StringBuffer sb = new StringBuffer();
for(int i=0; i<src.length; i++) {
switch(src[i]) {
case ' ':
sb.append("丂"); break;
case '0':
sb.append("侽"); break;
case '1':
sb.append("侾"); break;
case '2':
sb.append("俀"); break;
case '3':
sb.append("俁"); break;
case '4':
sb.append("係"); break;
case '5':
sb.append("俆"); break;
case '6':
sb.append("俇"); break;
case '7':
sb.append("俈"); break;
case '8':
sb.append("俉"); break;
case '9':
sb.append("俋"); break;
}
}
return sb.toString();
}
/**
* 僼儖僷僗傛傝僼傽僀儖柤偺傒庢摼
*
* @param pathname 僼儖僷僗
* @param 僼傽僀儖柤
*/
static public String Lastname(String pathname) {
String filename = pathname ;
int idx = pathname.lastIndexOf("\\");
if( idx != -1 ) {
filename = pathname.substring(idx+1,pathname.length());
}
return filename;
}
/**
* 僨乕僞曐懚梡偺僨乕僞偺嬫愗傝暥帤偑僶僢僥傿儞僌偟側偄傛偆偵僄儞僐乕僪偡傞
*
* @param delim 僨乕僞偺嬫愗傝偵巊偆暥帤
* @param src 曄姺偡傞暥帤楍
* @return 曄姺屻偺暥帤楍
*/
static public String delimitEncorde(String delim,String src) {
StringBuffer sb = new StringBuffer();
String s;
StringTokenizer st = new StringTokenizer(src,delim,true);
while(st.hasMoreTokens()){
s = st.nextToken();
if(s.equals(delim))
sb.append(DELIMIT);
else
sb.append(s);
}
return sb.toString();
}
/**
* 僨乕僞曐懚梡偺僨乕僞偺嬫愗傝暥帤曄姺偝傟偰偄傞暥帤楍傪僨僐乕僪偡傞
*
* @param delim 僨乕僞偺嬫愗傝偵巊偆暥帤
* @param src 曄姺偡傞暥帤楍
* @return 曄姺屻偺暥帤楍
*/
static public String delimitDecorde(String delim,String src) {
StringBuffer sb = new StringBuffer();
String buf = new String();
int first = 0;
int hit = 0;
while(src.length()>first){
hit = src.indexOf(DELIMIT,first);
if(hit>=0){
sb.append(src.substring(first,hit));
sb.append(delim);
first = hit+DELIMIT.length();
}else{
sb.append(src.substring(first,src.length()));
break;
}
sb.append(buf);
}
return sb.toString();
}
/**
* Key抣偑 "NEXT_" 偱巒傑傞僨乕僞傪 Para[] 偵媗傔崬傓
*
* @param hsPara 尦偺Hashtable
* @return 媗傔崬傫偩 Para攝楍
*/
public static Para[] nextParameter(Hashtable hsPara) {
Iterator it = hsPara.keySet().iterator();
ArrayList list = new ArrayList(hsPara.size());
while(it.hasNext()) {
String key = (String)it.next();
if(key.startsWith("NEXT_")) {
String[] values = (String[])hsPara.get(key);
for(int i=0; i<values.length; i++) {
Para para = new Para(key,values[i]);
list.add(para);
}
}
}
return (Para[])list.toArray(new Para[0]);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -