小弟刚刚开始学习java,有几个输入输出流问题没弄明白:
1、在RandomAccessFile类中,我使用read和write方法从一个文件拷到另一个文件,writer(buffer,0,count)方法中,为什么它说是从位置0开始写count这么长的内容,但是实际写出来都是接着上面的内容写的呢?2、在RandomAccessFile类中,使用writerInt方法往txt文件里面写整数,但是打开文件看到的是此整数对应的ASCII码
那我该怎么往文件里面写整数呢?3、File类中,listroots不能得到所有的盘符,不知道为什么啊。

解决方案 »

  1.   

    1、从0开始指的是缓冲区buffer里面的数据,而不是文件里面的数据
    2、当然是ascii码了,否则就不应该叫writeInt了,应该叫writeChar或者writeString了
    3、File类有这个方法吗,我还真不知道,实在不好意思,没有用过这个方法。
      

  2.   

    1: writer(buffer,0,count) 这个0是指准备写入的buffer数组中数据起始位置,count是写入的长度
    至于写入流位置点则是自动根据写入内容增加2:write(String.valueOf(324))  writeString?3:listroots不能得到所有的盘符  能得到哪些盘符?
      

  3.   


       listRoots是File类的静态方法,直接通过
         File[] list=File.listRoots();
            for(File f:list)
             System.out.println(f);
        就可以获得本机的磁盘列表。
      

  4.   

    这里高手还是挺多的呀
    不过 
    for(File f:list)这句话是什么意思啊?
      

  5.   

    1、RandomAccessFile类有个“文件指针”的概念,读取或写入后会标记当前读取或写入的位置,下次再读取或写入就会接着上次标记的位置,楼主可以用seek方法随意设置这个位置,就能从文件的任何位置读取或写入了,要从头开始也简单,seek(0)就行了。其他的不再多说,已经有高人指点了
      

  6.   

    [Quote=引用 7 楼 tassdars 的回复:]1、RandomAccessFile类有个“文件指针”的概念,读取或写入后会标记当前读取或写入的位置,下次再读取或写入就会接着上次标记的位置,楼主可以用seek方法随意设置这个位置,就能从文件的任何位置读取或写入了,要从头开始也简单,seek(0)就行了。这个对