⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fileutil.java.svn-base

📁 利用sip协议
💻 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 + -