Да; fseek()
гарантирует, что файл будет выглядеть так, как должен, в соответствии с выполненными вами операциями fwrite()
.
Стандарт C, ISO / IEC 9899: 1999 §7.19.9.2 fseek()
, говорит :
Функция fseek устанавливает индикатор позиции файла для потока, на который указывает поток. Если возникает ошибка чтения или записи, отображается индикатор ошибки для потока, и fseek не работает.
blockquote>
def arr = [] as String[]
или
String[] arr = [] as String[]
Это должно сделать это. Вы можете проверить это и поиграть здесь: https://groovyconsole.appspot.com/
Простой способ -
String[] osList = []
assert osList.class.array
assert 'java.lang.String[]' == osList.class.typeName
Другой вопрос заключается в том, что это определение довольно бесполезно. Это неизменяемая строка нулевой длины [] и может использоваться где-то только как константа.
Прежде всего: добро пожаловать в SO!
У вас есть несколько вариантов создания массивов в groovy.
Но давайте начнем с того, что вы сделали неправильно.
def String[] osList = new String[]
Вы использовали здесь def
и String[]
.
Def - это анонимный тип, который означает, что groovy определит, какой тип он для вас. String [] является объявленным типом, поэтому Groovy увидит здесь: String[] String[] osList = new String[]
, который явно не будет работать.
Однако для массивов необходим фиксированный размер, который необходимо указать в качестве аргумента для создания массива: Type[] arr = new Type[sizeOfArray]
в вашем случае, если вы хотите иметь 10 элементов в массиве, вы бы сделали: String[] osList = new String[10]
если вы не знаете, сколько у вас будет строк, используйте вместо этого список. ArrayList сделает это в большинстве случаев:
List<String> osList = new ArrayList<>()
теперь вы можете добавлять элементы, вызывая:
osList.add("hey!")
или используя Оператор добавления-добавления в список groovy:
osList << "hey!"
Для получения дополнительной информации обратитесь к официальной документации groovy и посмотрите, не можете ли вы найти решение самостоятельно! [ 1123]