Для многомерных массивов может быть сложно получить доступ к свойству length
правого измерения. Возьмем следующий код, например:
int [][][] a = new int [2][3][4];
for(int i = 0; i < a.length; i++){
for(int j = 0; j < a[i].length; j++){
for(int k = 0; k < a[j].length; k++){
System.out.print(a[i][j][k]);
}
System.out.println();
}
System.out.println();
}
Каждое измерение имеет разную длину, поэтому тонкая ошибка заключается в том, что средняя и внутренняя петли используют свойство length
той же размерности (поскольку a[i].length
(f5)).
Вместо этого внутренний цикл должен использовать a[i][j].length
(или a[0][0].length
для простоты).
В TextIO
есть функция withTempDirectory
, которая должна позволять вам устанавливать временное ведро на то, где учетная запись службы имеет более высокие привилегии.
Я считаю, что TextIO
поместит файлы в tempLocation
вашего конвейера. Возможно, вы сможете установить tempLocation
вашего конвейера в сегменте, который не так критичен для безопасности, и записать результат в защищенный сегмент.
ЛМК, если любая из этих альтернатив поможет.