Использование Java API для NetCDF У меня есть файл HDF5 с массивом типа CHAR, который согласно documentation похож на строки, содержащие только символы ASCII: Тип char содержит неинтерпретированные символы, по одному символу на каждый байт. Обычно они содержат 7-битные символы ASCII. " В HDFView примером одного из значений the в массиве является «13».Извлечение массивов 1D из переменных массива NetCDF char в файлах HDF5 с использованием Java
Я знаю, что для массива целых чисел я могу получить их все как массив Java, как это:
int[] data = (int[]) netCDFArray.get1DJavaArray(int.class);
Но как я могу получить обратно массив этого типа CHAR? К сожалению, документация, на которую я ссылаюсь, не поможет.
Следующая не может быть правильным, потому что некоторые из деталей больше, чем одиночные символы:
char[] data = (char[]) netCDFArray.get1DJavaArray(char.class);
Следующие попытки все бросить ForbiddenConversionException
:
char[] data = (char[]) netCDFArray.get1DJavaArray(char.class);
char[][] data = (char[][]) netCDFArray.get1DJavaArray(char[].class);
String[] data = (String[]) netCDFArray.get1DJavaArray(String.class);
Если я использую netCDFArray.toString()
я вижу мой массив строк, потому что ArrayChar
использует StringIterator
. Я тоже мог бы использовать такой итератор и делать что-то с каждой строкой, я полагаю. Но мне не нужно получать итератор int для извлечения целых чисел. Как я могу эффективно получить все строки типа CHAR за один раз, аналогично тому, как я могу получить целые числа (см. Выше)? Я был бы доволен извлечением Java Strings[]
, CharSequence[]
, или char[][]
.