У меня была аналогичная проблема - мне пришлось прочитать целый XML-файл и создать структуру данных в памяти. В этой структуре данных (все должно было быть загружено) мне пришлось выполнять различные операции. Многие элементы XML содержали текст (который я должен был выводить в своем выходном файле, но не был важен для алгоритма).
В общем, как было предложено здесь, я использовал SAX для анализа файла и создайте мою структуру данных. Мой файл был 4 ГБ, и у меня была 8-гигабайтная машина, поэтому я подумал, что, возможно, 3 ГБ файла - это просто текст, а для java.lang.String, вероятно, потребуется 6 ГБ для этого текста, используя его UTF-16.
JVM занимает больше места, чем компьютер имеет физическую RAM, тогда машина будет меняться. Выполнение сбора мусора с меткой + sweep приведет к тому, что страницы получат доступ в случайном порядке, а также объекты, перемещаемые из одного пула объектов в другой, что в основном убивает машину.
Поэтому я решил написать все мои строки выходят на диск в файле (FS, очевидно, может обрабатывать последовательную запись 3GB в порядке, а при чтении в ОС будет использовать доступную память для кеша файловой системы, все равно могут быть прочитаны с произвольным доступом но меньше, чем GC в java). Я создал небольшой вспомогательный класс, который вы более чем можете скачать, если он вам поможет: StringsFile javadoc | Загрузить ZIP .
StringsFile file = new StringsFile();
StringInFile str = file.newString("abc"); // writes string to file
System.out.println("str is: " + str.toString()); // fetches string from file
http://msdn.microsoft.com/en-us/library/aa970773.aspx
Там невозможно заменить только часть визуального дерева элемента управления; чтобы изменить визуальное дерево элемента управления, вы должны установить для свойства Template элемента управления значение его нового и полного ControlTemplate.