Получить OutputStream в строку

Методы, использующие r.nextDouble(), должны использовать:

long number = (long) (rand.nextDouble()*max);


long number = x+(((long)r.nextDouble())*(y-x));
544
задан Jonik 7 June 2009 в 15:16
поделиться

4 ответа

Я использовал бы ByteArrayOutputStream. И на конце можно звонить:

new String( baos.toByteArray(), codepage );

или лучше:

baos.toString( codepage );

Для String конструктор, эти codepage может быть String или экземпляр java.nio.charset. Набор символов . Возможное значение java.nio.charset. StandardCharsets. UTF_8.

метод toString() принимает только String как codepage параметр (выдержите Java 8).

575
ответ дан 0xCursor 7 June 2009 в 15:16
поделиться

Мне нравится библиотека Apache Commons IO. Смотрите на его версию ByteArrayOutputStream, который имеет toString(String enc) метод, а также toByteArray(). Используя существующие и доверяемые компоненты как палата общин проект позволяет Вашему коду быть меньшим и легче расширить и повторно иметь целью.

44
ответ дан Matthew 7 June 2009 в 15:16
поделиться

Вот то, что я закончил тем, что делал:

Obj.writeToStream(toWrite, os);
try {
    String out = new String(os.toByteArray(), "UTF-8");
    assertTrue(out.contains("testString"));
} catch (UnsupportedEncondingException e) {
    fail("Caught exception: " + e.getMessage());
}

, Где OS ByteArrayOutputStream.

13
ответ дан Adrian Mouat 7 June 2009 в 15:16
поделиться

Это отлично сработало

    OutputStream output = new OutputStream()
    {
        private StringBuilder string = new StringBuilder();
        @Override
        public void write(int b) throws IOException {
            this.string.append((char) b );
        }

        //Netbeans IDE automatically overrides this toString()
        public String toString(){
            return this.string.toString();
        }
    };

вызов метода = >> marshaller.marshal ((Object) toWrite, (OutputStream) output);

затем, чтобы напечатать строку или получить ее просто укажите сам "выходной" поток В качестве примера, чтобы вывести строку на console = >> System.out.println (output);

FYI: мой вызов метода marshaller.marshal (Object, Outputstream) предназначен для работа с XML. Это не имеет отношения к этой теме.

Это очень расточительно для производственного использования, существует слишком много преобразований, и это немного плохо. Это было просто закодировано, чтобы доказать вам, что вполне возможно создать собственный OuputStream и вывести строку. Но просто идите по пути Horcrux7, и все будет хорошо с двумя вызовами методов.

И мир живет другим днем ​​....

24
ответ дан 22 November 2019 в 22:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: