总结下前些时候的那个项目(Java+vb.net) (二)

2014-11-24 07:25:33 · 作者: · 浏览: 1
t.println("upload failed");
80 e.printStackTrace();
81 }
82 }
83
84 public void DownloadFile(String localpath,String filename) {
85 try {
86 ftp.chdir("");
87 String[] files = ftp.dir("", true);
88
89 for (int i = 0; i < files.length; i++) {
90
91 System.out.println(files[i]);
92
93 ftp.get(new FileOutputStream(localpath + filename), filename);
94
95 }
96 } catch (Exception e) {
97 e.printStackTrace();
98 System.out.println("upload failed");
99 }
100 }
101
102 public void disConn() {
103 try {
104 ftp.quit();
105 } catch (Exception e) {
106 System.out.println("disconnection failed");
107 e.printStackTrace();
108 }
109 }
110
111
112 public static void main(String[] args) throws Exception{
113
114 }
115 }

=======================
再说CA签名的部分,因为这块第三方提供的DLL,用Java调用要用JNI重写DLL ,对VC那块不熟的我,就用.NET做了个守护程序,负责对两个文件夹里面的文件分别进行签名和签名认证,并将其结果分别写到一个文件中,供Java程序读取调用。
PS:在这个过程中,遇到了一个问题,会出现java程序和.NET这边的程序同时访问同一个文件的情况,就是那个签名结果文件。后来的时候,我将这个文件复制了一份,让java查找复制后的文件,如果找到,再回去找到源文件,这样就没有同时访问的问题了。
这部分,其实就是调用一下人家的函数,没啥技术含量,唯一一个就是用了下多线程来控制签名和认证的两个函数的运行。
=======================
Java操作文件:
这部分也不是什么大问题,主要就是文件的编码问题:在eclipse下好好的程序 放在netbeans下用的时候就出现了乱码,文件里的中文读出来乱码,所以文件头的包长也就计算不正确了。
后来,使用了这样的代码:
1 /**
2 * @parameter fileName 要读取的文件名
3 * @return 文件内容
4 */
5 public static String readFile(String fileName) {
6 String context = "";
7 File f = new File(fileName);
8 BufferedReader bufReader = null;
9 try {
10 InputStreamReader isr = new InputStreamReader(new FileInputStream(fileName), "GBK");
11 bufReader = new BufferedReader(isr);
12 context = bufReader.readLine();
13
14 } catch (IOException ie) {
15 ie.printStackTrace();
16 } finally {
17 try {
18 bufReader.close();
19 } catch (Exception e) {
20 e.printStackTrace();
21 }
22 }
23
24 return context;
25 }


原来是直接用Reader去读的,比较悲惨。。。以后引以为戒,能自己设定编码的情况 一定自己hold住。。。
========================
关于Java解析xml的这部分,很大众的,用dom4j.
1 import java.io.File;
2 import java.io.FileWriter;
3 import java.io.IOException;
4 import java.io.Writer;
5 import java.util.Iterator;
6
7 import org.dom4j.Document;
8 import org.dom4j.DocumentException;
9 import org.dom4j.DocumentHelper;
10 import org.dom4j.Element;
11 import org.dom4j.io.OutputFormat;
12 import org.dom4j.io.SAXReader;
13 import org.dom4j.io.XMLWriter;
14
15 /**
16 * @author Icer
17 */
18
19 public class Dom4jDemo {
20
21 /**
22 * 解析xml格式字符串
23 * @return 对账文件名
24 */
25 public String parseXmlName(String xml){
26 System.out.println("接收到的字符串为:" + xml);
27 String findFileName = "";
28 try {
29 Document document = DocumentHelper.parseText(xml);
30 Element root = document.getRootElement();
31 for (Iterator i = root.elementIterator(); i.hasNext();) {
32 Ele