import java.io.*;
public class Example9_3{
    public static void main(String args[ ]){
        File file=new File("hello.txt");//指定文件名称
        //把字符串按字节码的方式存放到字节数组b中
        byte b[]="欢迎welcome".getBytes();
        try{    //创建到文件hello.txt的输出流(通道)
 FileOutputStream out=new FileOutputStream(file);
//把b数组的内容通过输出流写入文件。
              out.write(b);
              out.close();//关闭输出流
//创建到文件hello.txt的输入流(读取通道)
              FileInputStream in=new FileInputStream(file);
              int n=0;
//顺序读取每个字符(2个字节)然后输出
              while((n=in.read(b,0,2))!=-1){
                 String str=new String(b,0,n);
                 System.out.println(str);
             }
        }
        catch(IOException e){
             System.out.println(e);
        }  
    }
}
各位大大帮我看看好么?为什么输出的结果“欢迎"两个字没了呢?是什么问题呢??谢谢

解决方案 »

  1.   

    楼主好好看看代码,你的写法没问题呀,我运行了可以输出“欢迎welcome”。没搞清楚你要表达的意思。
      

  2.   

    请楼主把问题阐述清楚,控制台按照你的代码可以正常输出,no problem。。
      

  3.   

    呵呵,还是编码问题,使用GBK编码吧估计是用IDE的吧,自己设置编码方式
      

  4.   


    ��
    ��
    we
    lc
    om
    e
    这种情况?  你.java .txt文件编码都弄成一样的  GBK  UTF-8都行
      

  5.   

    我eclipse运行有结果,不知道你用的是什么编译器
    我想可能是读取两个字符那的问题,因为你的运行结果就只有两个字符
      

  6.   

    我在Netbeans里运行不了,也不知道为什么
      

  7.   

    不懂控制台,我用的是IDE,呵呵
      

  8.   

    不能这样读数据,你读两位,如果编码方式是UTF-8就不行了,中文有些的UTF-8编码为三个字节的,你这样读两个字节肯定不行啊……你也不应该这样啊,你应该全部先读到一个字节数组里面,然后再new string……