Nano Hash - криптовалюты, майнинг, программирование

Как получить содержимое входного потока в обратном порядке?

Я использую текстовый файл для дизайна своего уровня. Я использую приведенное ниже, чтобы взять содержимое и преобразовать в строковый буфер, а затем выполнить итерацию по строкам для создания моих игровых объектов.

Проблема в том, что он читается сверху вниз, и поэтому я должен проектировать свои уровни вверх ногами, чтобы они были правильными.

Как я могу изменить поток, чтобы читать наоборот? Или записать строки в String Builder наоборот?

 private static String convertStreamToString(InputStream is) {

        BufferedReader reader = new BufferedReader(new InputStreamReader(is));
        StringBuilder sb = new StringBuilder();

        String line = null;
        try {
            while ((line = reader.readLine()) != null) {
                sb.append((line + "\n"));
            }
        } catch (IOException e) {
            Log.w("LOG", e.getMessage());
        } finally {
            try {
                is.close();
            } catch (IOException e) {
                Log.w("LOG", e.getMessage());
            }
        }
        return sb.toString();

  • будет ли недостаточно метода insert() построителя строк? 23.05.2013

Ответы:


1

Вы можете просто использовать sb.insert(0, line + "\n") вместо sb.append(line + "\n");.

Это всегда будет добавлять новые строки в начало строки, а не добавлять ее в конец. Должен делать именно то, что вы хотите, и будет таким же быстрым, потому что StringBuilder создан именно для таких вещей.

23.05.2013
  • Гений. Спасибо за это. Извините, что я идиот, но не могли бы вы объяснить, почему это работает? 23.05.2013
  • Спасибо, что нашли время объяснить. 23.05.2013
  • @Till Helge будет ли это быстрее/лучше, чем добавление к sb, а затем возврат sb.reverse().toString() 23.05.2013
  • @artfullyContrived Нет, но по сравнению с этим было бы правильно. Только порядок строк предназначен для изменения, а не всей строки. 23.05.2013
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..