java怎么从一个字符串里读出第一个字节

现在有个字符串String s="abcdefg";
要求读出这个字符串里的第一个字节
注意:就从这个字符串里读,不要跟我说从文件里读,那样谁不会,不就是FileInputStream吗
这个问题的重点是读字符串用哪个类
要求用IO流,不要用字符串方法

读字符串第一字节是什么意思呢,1个字符等于1个字节,你的意思是截取s中的第一位么?

System.out.println(s.subSequence(0, 1));
运行结果为
a
原方法为:
String.subSequence(beginIndex(开始字节数), endIndex(结束字节数))追问

我的意思是用IO流读,不要用字符串方法
如果字符串方法,我直接charAt(0)就搞定了
用流读S的第一个字节

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-01-18
byte[] bytes = s.getBytes();
byte[0]就是第一个字节

追问

不要这样的,就要从流里读

追答

最近看到ByteArrayInputStream 和ByteArrayOutputStream,叫做内存流,

String s = "abcdefg";  
 //构造方法
ByteArrayInputStream bis = new ByteArrayInputStream(s.getBytes()); 
//read()方法 Reads the next byte of data from this input stream,返回int值
 //System.out.println(bis.read());//这是第一个字节
int data; 
while(bis.avilable()>0)
{
    data = bis.read();
    System.out.println(data);  //System.out.println((char)data);
}    
虽然过了好久了,还是希望对你有用!

本回答被提问者采纳
第2个回答  2015-01-20
String str="H E L L O W O R L D";
ByteArrayInputStream bis=new ByteArrayInputStream(str.getBytes());
ByteArrayOutputStream bos=new ByteArrayOutputStream();
int temp=0;
List<Character>cc=new ArrayList<Character>();
//while((temp=bis.read())!=-1){
char c=(char)bis.read();

cc.add(c);
System.out.println(cc.toString());
第3个回答  2019-06-23
java语言内部的char是使用unicode编码,utf-16,所以都是两字节。
getbytes后,实际上是转换成指定的编码字符集。
不指定时,一般用本地字符集,通常是gbk、acsii等,在这些字符集中,英文都是单字节的,所以会出现这样的问题。
第4个回答  2015-01-18
s.charAt(0); ?追问

要求用流读