从本地文件读取射电源信息

2019-04-15

在给昆明40米天线写天线控制界面的时候,因为不在现场,所以有一些因素无法得到解决。将原先放于数据库的射电源信息更改为从本地读取。

射电源文件(radio.cat)放在工程目录下的config文件夹中,内容如下(每行从左到右依次为射电源名、赤经坐标、赤纬坐标、历元)

orion   05:35:17.00 -05:23:28.00 J2000
Omega   18:20:47.10 -16:10:17.00 J2000
3C353   17:20:28.10 -00:58:47.00 J2000
3C273   12:29:06.70  02:03:09.00 J2000
3C84    03:19:48.16  41:30:42.10 J2000
3C405   19:59:28.30  40:44:02.00 J2000
3C144   05:34:32.00  22:00:52.00 J2000
3C461   23:23:27.90  58:48:42.00 J2000
3C274   12:30:49.42  12:23:28.04 J2000
3C454.3 22:53:57.70  16:08:54.00 J2000
3C123   04:37:04.40  29:40:14.00 J2000
3C147   05:42:36.10  49:51:07.00 J2000
3C279   12:56:11.10 -05:47:22.00 J2000
3C286   13:31:08.30  30:30:33.00 J2000
Dr21    20:39:01.60  42:19:38.00 J2000
3C345   16:42:58.80  39:48:37.00 J2000
3C380   18:29:31.80  48:44:46.00 J2000
3C218   09:18:05.70 -12:05:44.00 J2000
3C161   06:27:10.10 -05:53:05.00 J2000

读取方法:

private Set<String> getRadioSourceMessage() throws IOException{
		Set<String> sourceName = new HashSet<String>();
		  String souce_properties_file     = "./config/radio.cat";
			Properties p = new Properties();
			BufferedReader reader = null;
			try {
				reader = new BufferedReader(new InputStreamReader(new FileInputStream(souce_properties_file)));
				String sourceMsg = null;
				while((sourceMsg = reader.readLine())!= null){
					String[] msgDetails = sourceMsg.split("\\s+");
						System.setProperty(msgDetails[0] + ".ra", msgDetails[1]);
						System.setProperty(msgDetails[0] + ".dec", msgDetails[2]);
						sourceName.add(msgDetails[0]);
				}
			} catch (IOException e) {
				e.printStackTrace();
			}
			reader.close();
			return sourceName;
		}

思路:
1.使用BufferedReader来读文件,可以逐行读取数据;
2.因为射电源表几个信息之间的空格数可能不定,所以使用"\s+"这个正则表达式来匹配一个或多个空白符;
3.将每个射电源的赤经赤纬坐标以“射电源名.ra’”和“射电源名.dec”两个键值对的形式放入到系统中,使用时获取用户输入的射电源名称,加上相应的后缀即可从系统中获取。
4.将所有射电源名称放在一个 Set 中 并返回,以便放入ComboBox中供用户选择。

这样的做法比较简单,也可以不用再对数据库进行操作。但是数据文件可能会受到破坏,在软件交付时应告知用户,配置文件不可轻易改动,或在改动之前做好备份。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值