Использование BufferedReader -
StringTokenizer st = new StringTokenizer(buf.readLine());
while(st.hasMoreTokens())
{
arr[i++] = Integer.parseInt(st.nextToken());
}
блок AnyCPU будет JIT к 64-битному коду при загрузке в 64-разрядный процесс и 32 бита при загрузке в 32-разрядный процесс.
Путем ограничения ЦП Вы сказали бы: существует то, чтобы это было используемым блоком (что-то, вероятно, неуправляемое), который требует 32 битов или 64 битов.
Вот быстрый обзор , который объясняет различные цели сборки.
На основе моего собственного опыта, если Вы надеетесь разрабатывать проект, который будет работать и на x86 и на x64 платформах, и у Вас нет определенной x64 оптимизации, я изменил бы сборку для специфического высказывания "x86".
причина этого иногда, можно получить некоторые DLLs, которые сталкиваются или некоторый код, который завершает отказывающий WOW в x64 среде. Путем специфического определения x86, x64 ОС будет рассматривать приложение как чистое x86 приложение и удостоверяться, что все работает гладко.
"Любой ЦП" означает, что, когда программа запущена, Платформа.NET выяснит, на основе разрядности ОС, запустить ли Вашу программу в 32 битах или 64 битах.
существует различие между x86 и Любой ЦП : в x64 системе Ваш исполняемый файл, скомпилированный для X86, будет работать как 32-разрядный исполняемый файл.
Насколько Ваши подозрения идут, просто перейдите к Visual Studio командная строка 2008 года и выполненный следующее.
dumpbin YourProgram.exe /headers
Это скажет Вам разрядность Вашей программы, плюс намного больше.
Любой ЦП означает, что будет работать над любой платформой. Это вызвано тем, что управляемый код подобен Java. Думайте о нем как скомпилированный в код байта, который интерпретируется Платформой.NET во времени выполнения.
C++ не имеет этой опции, потому что это компилируется в машинный код, который является конкретной платформой.
Проверьте Цель Платформы Visual Studio.NET статьи , Объясненную .
настройка по умолчанию, "Любой ЦП", означает, что блок будет работать исходно на ЦП, на котором это в настоящее время работает. Значение, это будет работать как 64-разрядное на 64-разрядной машине и 32-разрядное на 32-разрядной машине. Если блок назовут из 64-разрядного приложения, то он будет работать как 64-разрядный блок и так далее.
вышеупомянутая связь, как сообщали, была разорвана, таким образом, вот другая статья с подобным объяснением: , Что AnyCPU Действительно Средства С.NET 4.5 и Visual Studio 11
Я думаю, что было сказано, что большинство важных вещей было сказано, но я просто подумал, что добавлю одно: если вы компилируете как любой CPU и запустить на платформе X64 , Тогда вы не сможете загрузить 32-разрядные файлы DLL, поскольку ваше приложение не было запущено в WOW64 , но эти файлы DLL должны работать там.
Если вы компилируете x86, то система X64 будет запускать ваше приложение в WOW64, и вы сможете загрузить 32-разрядные файлы DLL.
Так что я думаю, что вы должны выбрать «любой CPU», если ваши зависимости могут работать в любой среде, но выберите X86, если у вас есть 32-разрядные зависимости. Эта статья из Microsoft объясняет это немного:
/ CLRIMAGETYPE (Укажите тип изображения CLR)
Кстати, Эта другая документация Microsoft соглашается с тем, что X86 обычно является более портативный выбор:
x86, как правило, самая безопасная конфигурация для пакета приложения Так как он будет работать почти на каждом устройстве. На некоторых устройствах приложение Пакет с конфигурацией X86 не запустится, например, Xbox или некоторые IOT основные устройства. Однако для ПК пакет X86 является самым безопасным Выбор и имеет самый большой достижение для развертывания устройства. Существенный Часть устройства Windows 10 продолжают запускать версию X86 Окна.