📄 fileutil.java.svn-base
字号:
package com.xunlei.callcenter.util;
import java.io.*;
import java.util.Properties;
public class FileUtil {
public static String path = null;
public static String QUEUE_FILE_NAME="queues_additional.conf";
public static String SIP_FILE_NAME ="sip_additional.conf";
static {
path = getConfigFilePath("config_path");
}
public static boolean isExistsConent(String filename, String content) {
String str = null;
boolean has = false;
String filepath = path+"/"+filename;
try {
BufferedReader br = new BufferedReader(new InputStreamReader(
new FileInputStream(filepath), "GBK"));
while ((str = br.readLine()) != null) {
if (str.indexOf(content) > -1) {
has = true;
continue;
}
}
br.close();
} catch (Exception e) {
throw new RuntimeException("读文件" + filepath + "出错:" + e);
}
return has;
}
public static String getConfigFilePath(String para) {
Properties props = new Properties();
InputStream infile = Thread.currentThread().getContextClassLoader().getResourceAsStream("fileconfig.properties");
try {
props.load(infile);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String uri = props.getProperty(para);
return uri;
}
public static void generateAddSipConfFile(String account, String passwd) {
try{
String oldfilepath=path+"/" +SIP_FILE_NAME;
String tempfilepath = path+"/"+SIP_FILE_NAME.substring(0, SIP_FILE_NAME.lastIndexOf("."))+".bak";
File tempfile = new File(tempfilepath);
BufferedWriter bw = new BufferedWriter(new FileWriter(tempfile));
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(oldfilepath), "GBK"));
String str = null;
while ((str = br.readLine()) != null) {
bw.write(str);
bw.write("\t\n");
}
bw.write("["+account+"]");
bw.write("\t\n");
bw.write("type=friend");
bw.write("\t\n");
bw.write("secret="+passwd);
bw.write("\t\n");
bw.write("record_out=Always");
bw.write("\t\n");
bw.write("record_in=Always");
bw.write("\t\n");
bw.write("qualify=yes");
bw.write("\t\n");
bw.write("port=5060");
bw.write("\t\n");
bw.write("nat=yes");
bw.write("\t\n");
bw.write("mailbox="+account+"@default");
bw.write("\t\n");
bw.write("host=dynamic");
bw.write("\t\n");
bw.write("dtmfmode=rfc2833");
bw.write("\t\n");
bw.write("dial=SIP/"+account);
bw.write("\t\n");
bw.write("context=from-internal");
bw.write("\t\n");
bw.write("canreinvite=no");
bw.write("\t\n");
bw.write("callerid=device <"+account+">");
bw.write("\t\n");
bw.write("\t\n");
br.close();
bw.close();
new File(oldfilepath).delete();
tempfile.renameTo(new File(oldfilepath));
}catch(Exception e) {
throw new RuntimeException("产生文件报错" + e);
}
}
public static void generateDelSipConfFile(String account) {
try{
String oldfilepath=path+"/" +SIP_FILE_NAME;
String tempfilepath = path+"/"+SIP_FILE_NAME.substring(0, SIP_FILE_NAME.lastIndexOf("."))+".bak";
File tempfile = new File(tempfilepath);
BufferedWriter bw = new BufferedWriter(new FileWriter(tempfile));
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(oldfilepath), "GBK"));
String str = null;
boolean deleting = false;
while ((str = br.readLine()) != null) {
if(str.indexOf("["+account+"]")>-1){
deleting = true;
}
if(deleting&&str.trim().isEmpty())deleting = false;
if(!deleting){
bw.write(str);
bw.write("\t\n");
}
}
br.close();
bw.close();
new File(oldfilepath).delete();
tempfile.renameTo(new File(oldfilepath));
}catch(Exception e) {
throw new RuntimeException("产生文件报错" + e);
}
}
public static void generateAddQueueConfFile(String groupname,String account) {
try{
String oldfilepath=path+"/" +QUEUE_FILE_NAME;
String tempfilepath = path+"/"+QUEUE_FILE_NAME.substring(0, QUEUE_FILE_NAME.lastIndexOf("."))+".bak";
File tempfile = new File(tempfilepath);
BufferedWriter bw = new BufferedWriter(new FileWriter(tempfile));
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(oldfilepath), "GBK"));
String str = null;
boolean hasfound = false;
boolean hasadd= false;
while ((str = br.readLine()) != null) {
if(str.indexOf("["+groupname+"]")>-1)hasfound = true;
if(hasfound&&str.trim().isEmpty()){
bw.write("member=Local/"+account+"@from-internal/n,0");
bw.write("\t\n");
hasadd = true;
hasfound = false;
}
bw.write(str);
bw.write("\t\n");
}
//若是最后一个组中加帐号
if(!hasadd){
bw.write("member=Local/"+account+"@from-internal/n,0");
bw.write("\t\n");
}
br.close();
bw.close();
new File(oldfilepath).delete();
tempfile.renameTo(new File(oldfilepath));
}catch(Exception e) {
throw new RuntimeException("产生文件报错" + e);
}
}
public static void generateDelQueueConfFile(String groupname,String account) {
try{
String oldfilepath=path+"/" +QUEUE_FILE_NAME;
String tempfilepath = path+"/"+QUEUE_FILE_NAME.substring(0, QUEUE_FILE_NAME.lastIndexOf("."))+".bak";
File tempfile = new File(tempfilepath);
BufferedWriter bw = new BufferedWriter(new FileWriter(tempfile));
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(oldfilepath), "GBK"));
String str = null;
boolean deleting = false;
while ((str = br.readLine()) != null) {
if(str.indexOf("["+groupname+"]")>-1){
deleting = true;
}
if(deleting&&str.indexOf("/"+account+"@")>-1){
deleting = false;
continue;
}
bw.write(str);
bw.write("\t\n");
}
br.close();
bw.close();
new File(oldfilepath).delete();
tempfile.renameTo(new File(oldfilepath));
}catch(Exception e) {
throw new RuntimeException("产生文件报错" + e);
}
}
public static void main(String []args){
//generateAddSipConfFile("admin","aaaa");
//generateDelSipConfFile("admin");
generateAddQueueConfFile("3","210");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -