Да. Самым простым способом будет традиционный цикл for
;
int[] number = {10, 20, 30, 40, 50};
for (int i = 0; i < number.length; i++) {
if (i != 0) {
System.out.print(",");
}
System.out.print(number[i]);
}
Вы также можете использовать StringJoiner
или конкатенацию потока. Но это было бы сложнее, чем просто использовать обычный цикл for
, как описано выше.
При создании массива, поскольку "представление" другого массива не возможно в Java. Но Вы могли использовать java.nio. ByteBuffer, который является в основном классом, который Вы предлагаете в обходном решении № 2. Например:
ByteBuffer subBuf = ByteBuffer.wrap(big, 200, 100).slice().asReadOnlyBuffer();
Никакое копирование не включено (некоторое создание объекта, хотя). Как стандартный класс библиотеки, я также предположил бы, что ByteBuffer, более вероятно, получит специальный режим wrt. Оптимизация "JIT" JVM, чем пользовательская.
Если Вы хотите считать файл быстро и с низкоуровневым доступом, проверьте Java nio материал. Вот пример из альманаха Java.
Можно использовать отображенный буфер байта для навигации в содержании файла.
Смотрите на источник для java.lang. Строка (это будет в src.zip или src.jar). Вы будете видеть, что у них есть массив символов и затем запуска и конца. Так, да, решение состоит в том, чтобы использовать класс, чтобы сделать это.
Вот ссылка на источник онлайн.
Переменные интереса:
подстрока является, вероятно, хорошим методом посмотреть на как начальная точка.
Если Вы хотите читать непосредственно из файла, используют java.nio.channels. Класс FileChannel, конкретно карта () метод - который позволит Вам использовать ввод-вывод с отображенной памятью, который будет очень быстр и использовать меньше памяти, чем копирование к массивам.