在VS.NET2005中使用java代码段以及SOL文件格式的解析

VS.NET2005中使用java代码段
以及SOL文件格式的解析

贺星河 2005-11-16

 

你是一个.net程序员,不熟悉java,突然拿到一段Java代码,你怎么办?你甚至什么java程序都没有写过,现在要把这段java代码用到.net中来,怎么办呢?

 

方法不外乎这几个:

1、学习java,用C#重写一遍,语法差不多,应该可以搞定

2、使用J#,java代码导入进来,做相关改动即可

3、将java类库(jar)转化成.net的类库(dll);比如IKVM项目

相关方法:

http://www.cnblogs.com/xiaotie/archive/2005/10/10/251724.aspx

 

其实到了VS.NET2005里面,我觉得大家可以试试第二种方法:

 

如果你有时间,那么第一种方法当然是最好不过的了,不管是对你的知识结构还是javaC#的了解都会加深很多,但是很多时候,因为可能项目紧张,你没时间重写一遍代码;这种时候你可以用第三种办法,但是实际情况你只是需要一段或者几段java代码,第三种方法就行不通了,所以我觉得第二种方法相对来说还是比较灵活的

 

我这里只一个举例子来说明在VS.NET2005中怎么在C#中使用一段java代码,供大家参考

写过Flash程序的大概都知道后缀为.sol的一种文件格式,这是flash用于在本地存储日志记录的;我们google一下,发现没有用.net写好的项目,但是有java的,http://sourceforge.net/projects/solve/ ;大家可以到 这里 下载相应的java源代码,然后解压来看可以看到这个软件的windows界面如下图:

图一、java版的SolVE界面

现在我们并不需要这个项目的gui,只是需要解析的一些文件格式代码,从solve-v0.2-src文件夹中我们可以看到,真正需要的是datatypes/fileformat/ 下面的几个相关类

图二、java代码的文件结构

我们使用eclipse查看一下相关的类,可以知道还需要/util/目录下的几个类

 

现在我们用VS2005新建一个C#Application项目和J#组件项目SolFileAccesser,将相关的几个类拷贝到项目下,并把.java的后名改为.jsl,这样vs就可以识别了

如下图

图三、将文件导入VS.NET

 

我们要在C# App中调用这个组件,并实现相应的解析功能

 

这个时候我们需要Add reference ,选择项目SolFileAccesser,并选择添加.net中的组件vjslib,这样就可以使用java中的一些类和方法了,如下图

图四、建立相应的C#程序调用这个组件

 

具体的怎么调用方法,我这里只将一个,其他都很类似:

比如现在我们要得到从LogInfo.sol文件里面读取到的Object,首先是要用

SolFileAccesser.DataTypes.Object flashObject =

            SolFileAccesser.FileFormat.TCSOFileReader.read(filePath);

SolFileAccesser.DataTypes.Object类的结构可以得知,flashObject.data是一个typejava.util.ArrayList的值这时因为我们已经引用了vjslib组件,就可以直接在C#中使用以下命令

java.util.ArrayList dataList = flashObject.data;

来获取data的值并进行遍历和解析,最后C#中程序的效果如下

图五、C#程序实现的界面

 

 

附源代码:FlashSolFile.rar 我的dotnet2.0版本为 2.0.50727,请注意

posted on 2005-12-07 00:25  团团ta爸  阅读(3795)  评论(2编辑  收藏

导航