日期:2014-05-20  浏览次数:20790 次

新人求助,求大神解惑

import java.io.DataOutputStream ;
import java.io.File ;
import java.io.FileOutputStream ;
public class DataOutputStreamDemo{
public static void main(String args[]) throws Exception{ // 所有异常抛出
DataOutputStream dos = null ; // 声明数据输出流对象
File f = new File("d:" + File.separator + "order.txt") ; // 文件的保存路径
dos = new DataOutputStream(new FileOutputStream(f)) ; // 实例化数据输出流对象
String names[] = {"衬衣","手套","围巾"} ; // 商品名称
float prices[] = {98.3f,30.3f,50.5f} ; // 商品价格
int nums[] = {3,2,1} ; // 商品数量
for(int i=0;i<names.length;i++){ // 循环输出
dos.writeChars(names[i]) ; // 写入字符串
dos.writeChar('\t') ; // 写入分隔符
dos.writeFloat(prices[i]) ; // 写入价格
dos.writeChar('\t') ; // 写入分隔符
dos.writeInt(nums[i]) ; // 写入数量
dos.writeChar('\n') ; // 换行
}
dos.close() ; // 关闭输出流
}
};


这个程序中这一段dos.writeChar()这个方法,在JDK文档中明明是要输入int类型的,为什么这里传入的是字符。求解- -

dos.writeChars(names[i]) ; // 写入字符串
dos.writeChar('\t') ; // 写入分隔符

------解决方案--------------------
void writeInt(int v)   参数:v - 要写入的 int 值。
void writeChar(int v)  参数:v - 要写入的 char 值。
你可以相信jdk,但不能不看它的说明,jdk也是会有不足的地方
------解决方案--------------------
writeChar()就是字符啊,你的jdk文檔註釋部分有問題吧