下面的例子是从Java的help中抄的,请问String s = new String(buff);是什么意思?(10分)

  • 主题发起人 主题发起人 mycwcgr
  • 开始时间 开始时间
M

mycwcgr

Unregistered / Unconfirmed
GUEST, unregistred user!
下面的例子是从Java的help中抄的,请问String s = new String(buff);是什么意思?

下面的例子是从Java的help中抄的,请问String s = new String(buff);是什么意思?
是不是将buff中的字节转化为字符串,请问有逆转换吗?
import java.io.*;
class FileReader {
public static void main(String args[]) {
byte buff[] = new byte[80];
try {
InputStream fileIn = new FileInputStream("Readme.txt");
int i = fileIn.read(buff);
String s = new String(buff);
System.out.println(s);
}
catch(FileNotFoundException e) {
}
catch(IOException e) {
}
}
 
在java中String 是类,这是在创建一个类的实例s并赋值为buff
 
请问有逆转换吗?
 
这个程序看起来不太完整吧?
比如 int i = fileIn.read(buff);
应该是为了察看i的值已确定否读到了文件末尾,但是程序中并没有对i作判断,这个程序如果执行估计要报错的。这是个演示如何读取文件流的例子阿还是演示如何抛出i/o异常的例子阿。
而且 byte buff[] = new byte[80];
应该写成 byte[] buff = new byte[80];吧?
至于String s = new String(buff);的意思,就是初始化String类的一个实例s(类似于定义一个字符串变量),并将s的值赋成buff的值。
这个程序是每次从一个文本文件中读取80个字节,并显示出来。
不过刚才说了,这个程序运行估计要报错的,这个程序是演示如何抛出i/o异常得吧?
 
byte buff[] = new byte[80]与 byte[] buff = new byte[80]等效
 
我的本意是通过xml传送一个二进制的文件
即将二进制的文件写入一个 byte数组,然后转化为字符串写入xml,通过socket传给客户端,客户端解析xml,并将字符串还原为byte数组,写入一个文件
现在的问题是如何将字符串还原为byte数组?
 

将二进制数据嵌入 XML 文档 方法非常多
我对xml不是很熟练
可以参考这篇文章:
讲解得非常详细,希望对你有帮助
http://www-900.ibm.com/developerWorks/cn/xml/x-binary/index.shtml
 
多人接受答案了。
 
后退
顶部