如何将System.in读取的流用String代替?就是想将键盘输入改成一个字符为题输入。

时间:2021-07-28 10:58:02
如何将System.in读取的流用String代替?这样写对吗?
String s = "test\n";
InputStream ss = new StringBufferInputStream(s);
上面这句在Eclipse里会出现不建议使用的方法,我要如何修改呢?
谢谢。

11 个解决方案

#1


BufferedReader in
   = new BufferedReader(new InputStreamReader(System.in));

#2


如上转换成字节流

#3


难道你们自己不专门编写一个键盘的输入类,我来推荐一个:流行的savitchin类,有用过吗?我找不到在哪下载了,只能把代码都贴上来了,呵呵.看我的帖子

#4


BufferedReader in
   = new BufferedReader(new InputStreamReader(System.in));
try {
String s = in.readLine();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

#5


用StringReader。不过我看不懂你在说什么,什么叫“将键盘输入改成一个字符为题输入”?

#6


什么叫“将键盘输入改成一个字符为题输入”?
如果是写入磁盘,还是用带有缓冲的流吧!

#7


不好意思,是我没有说清楚。
就是将System.in所取得的数据输入改成别的方式取得数据,
比如原来要从键盘输入:1234,现在要将这个输入流固定为String s = "1234",不从键盘取得数据,而是从一个字符串变量取得。但要将s转换成InputStream有格式。这个流将用于telnet的客房端程序。

#8


其实只要将一个String变量转换成InputStream就行了。
但是要如何转换呢?

#9


try{
  String sFirst;
  java.io.BufferedReader in = new java.io.BufferedReader( new java.io.InputStreamReader(System.in));
  System.out.print("Please input :");
  sFirst = in.readLine();
  System.out.print("You input is :"+sFirst );
}catch(Exception e){}

#10


嗯,这是个问题。StringReader好像不能向InputStream转,貌似只能用ByteArrayInputStream:
ByteArrayInputStream in = new ByteArrayInputStream( s.getBytes() );

#11


StringBufferInputStream已经过时了,java在后续版本里将不再支持这个类。
所以如果要将String转成InputStream只能用
ByteArrayInputStream bais = new ByteArrayInputStream(str.getBytes());

#1


BufferedReader in
   = new BufferedReader(new InputStreamReader(System.in));

#2


如上转换成字节流

#3


难道你们自己不专门编写一个键盘的输入类,我来推荐一个:流行的savitchin类,有用过吗?我找不到在哪下载了,只能把代码都贴上来了,呵呵.看我的帖子

#4


BufferedReader in
   = new BufferedReader(new InputStreamReader(System.in));
try {
String s = in.readLine();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

#5


用StringReader。不过我看不懂你在说什么,什么叫“将键盘输入改成一个字符为题输入”?

#6


什么叫“将键盘输入改成一个字符为题输入”?
如果是写入磁盘,还是用带有缓冲的流吧!

#7


不好意思,是我没有说清楚。
就是将System.in所取得的数据输入改成别的方式取得数据,
比如原来要从键盘输入:1234,现在要将这个输入流固定为String s = "1234",不从键盘取得数据,而是从一个字符串变量取得。但要将s转换成InputStream有格式。这个流将用于telnet的客房端程序。

#8


其实只要将一个String变量转换成InputStream就行了。
但是要如何转换呢?

#9


try{
  String sFirst;
  java.io.BufferedReader in = new java.io.BufferedReader( new java.io.InputStreamReader(System.in));
  System.out.print("Please input :");
  sFirst = in.readLine();
  System.out.print("You input is :"+sFirst );
}catch(Exception e){}

#10


嗯,这是个问题。StringReader好像不能向InputStream转,貌似只能用ByteArrayInputStream:
ByteArrayInputStream in = new ByteArrayInputStream( s.getBytes() );

#11


StringBufferInputStream已经过时了,java在后续版本里将不再支持这个类。
所以如果要将String转成InputStream只能用
ByteArrayInputStream bais = new ByteArrayInputStream(str.getBytes());