Как преобразовать StringBuffer в InputStream в Java ME? - PullRequest
15 голосов
/ 10 ноября 2011

Я новичок в Java и изучаю Java ME.Я застрял в этом преобразовании.Пожалуйста, помогите мне преобразовать StringBuffer в InputStream.Спасибо!

Ответы [ 3 ]

21 голосов
/ 10 ноября 2011

См. Класс ByteArrayInputStream. Например:

public static InputStream fromStringBuffer(StringBuffer buf) {
  return new ByteArrayInputStream(buf.toString().getBytes());
}

Обратите внимание, что вы можете использовать явную кодировку символов в методе getBytes(), например ::

.
return new ByteArrayInputStream(buf.toString().getBytes(StandardCharsets.UTF_8));

(Спасибо @ g33kz0r)

8 голосов
/ 10 ноября 2011

Посмотрите, можете ли вы получить StringBuffer для byte[], затем используйте ByteArrayInputStream .

2 голосов
/ 24 апреля 2014

Это лучший ответ, который я нашел на Примеры Java

import java.io.ByteArrayInputStream;
import java.io.InputStream;
public class StringBufferToInputStreamExample {
        public static void main(String args[]){
                //create StringBuffer object
                StringBuffer sbf = new StringBuffer("StringBuffer to InputStream Example");
                /*
                 * To convert StringBuffer to InputStream in Java, first get bytes
                 * from StringBuffer after converting it into String object.
                 */
                byte[] bytes = sbf.toString().getBytes();
                /*
                 * Get ByteArrayInputStream from byte array.
                 */
                InputStream inputStream = new ByteArrayInputStream(bytes);
                System.out.println("StringBuffer converted to InputStream");
        }
}
...