make canOpen method as static

This commit is contained in:
wyq 2023-09-11 22:14:47 +08:00
parent 618c5f1380
commit a8e015129b
3 changed files with 12 additions and 5 deletions

View File

@ -478,7 +478,7 @@ public class MeteoDataInfo {
di = new NetCDFDataInfo();
} else if (ARLDataInfo.class.getDeclaredConstructor().newInstance().isValidFile(raf)) {
di = new ARLDataInfo();
} else if (CMARadarBaseDataInfo.class.getDeclaredConstructor().newInstance().canOpen(fileName)) {
} else if (CMARadarBaseDataInfo.canOpen(fileName)) {
di = new CMARadarBaseDataInfo();
} else {
di = MICAPSDataInfo.getDataInfo(raf);

View File

@ -174,16 +174,23 @@ public class CMARadarBaseDataInfo extends DataInfo implements IGridDataInfo {
}
}
public boolean canOpen(String fileName) {
/**
* Check the data file format
* @param fileName Data file name
* @return Boolean
*/
public static boolean canOpen(String fileName) {
try {
byte[] bytes = new byte[4];
if (fileName.endsWith("bz2")) {
BZip2CompressorInputStream inputStream = new BZip2CompressorInputStream(Files.newInputStream(Paths.get(fileName)));
inputStream.read(bytes);
inputStream.close();
} else {
RandomAccessFile raf = new RandomAccessFile(fileName, "r");
raf.seek(0);
raf.read(bytes);
raf.close();
}
int magic = DataConvert.bytes2Int(bytes, ByteOrder.LITTLE_ENDIAN);
if (magic == 1297371986) {

View File

@ -22,13 +22,13 @@
<OpenedFile File="D:\Working\MIScript\Jython\mis\plot_types\patch\wind_circle_2.py"/>
<OpenedFile File="D:\Working\MIScript\Jython\mis\io\radar\radar_cma_base_grid_3d.py"/>
<OpenedFile File="D:\Working\MIScript\Jython\mis\io\radar\radar_bin_1.py"/>
<OpenedFile File="D:\Working\MIScript\Jython\mis\io\radar\radar_bin_4.py"/>
<OpenedFile File="D:\Working\MIScript\Jython\mis\io\radar\radar_cma_base.py"/>
</OpenedFiles>
<RecentFiles>
<RecentFile File="D:\Working\MIScript\Jython\mis\plot_types\patch\wind_circle_2.py"/>
<RecentFile File="D:\Working\MIScript\Jython\mis\io\radar\radar_cma_base_grid_3d.py"/>
<RecentFile File="D:\Working\MIScript\Jython\mis\io\radar\radar_bin_1.py"/>
<RecentFile File="D:\Working\MIScript\Jython\mis\io\radar\radar_bin_4.py"/>
<RecentFile File="D:\Working\MIScript\Jython\mis\io\radar\radar_cma_base.py"/>
</RecentFiles>
</File>
<Font>
@ -36,5 +36,5 @@
</Font>
<LookFeel DockWindowDecorated="true" LafDecorated="true" Name="FlatDarkLaf"/>
<Figure DoubleBuffering="true"/>
<Startup MainFormLocation="-7,0" MainFormSize="1365,791"/>
<Startup MainFormLocation="-7,-7" MainFormSize="1293,685"/>
</MeteoInfo>