zoukankan      html  css  js  c++  java
  • 在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,请注意

  • 相关阅读:
    [网络流24题]飞行员配对方案问题
    bzoj 1571: [Usaco2009 Open]滑雪课
    bzoj 1001: [BeiJing2006]狼抓兔子
    bzoj 1711: [Usaco2007 Open]Dining吃饭
    bzoj 3379: [Usaco2004 Open]Turning in Homework 交作业
    bzoj 1412: [ZJOI2009]狼和羊的故事
    luogu P1345 [USACO5.4]奶牛的电信Telecowmunication
    hdu1512 Monkey King
    [BZOJ2006][NOI2010]超级钢琴(ST表+堆)
    [BZOJ4824][CQOI2017]老C的键盘(树形DP)
  • 原文地址:https://www.cnblogs.com/hxhbluestar/p/292182.html
Copyright © 2011-2022 走看看