高手,您好:
    现在我在写一个程序,需要用到:
    “Java IO流”的操作部分的知识..
    由于我对于Java IO流部分的知识,理解的还不够透彻,现在碰到了一些问题,希望得到高手的点拨...
    我想要达到一个:
    向Windows 7操作操作系统的硬盘的分区之下,写出“面向txt文件的数据”“并且能够即时读取这些数据到内存”的Java代码的功能。
    我写出的代码如下:
    package c_port_packageDoctor;import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;public class Test8 {
FileOutputStream fops = null;
FileInputStream fips = null;
byte[] bytes1 = new byte[1024];
Test8(){
try {
fops = new FileOutputStream("D:\\MyDoc\\test.txt");
fips = new FileInputStream("D:\\MyDoc\\test.txt");

} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

public static void main(String[] args){
Test8 t8 = new Test8();
t8.start();
t8.GoonStart();
}

public void start(){
try {
           byte[] bytes = "19".getBytes();
fops.write(bytes);
//dops.writeInt(19);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

public void GoonStart(){
try {
bytes1 = fips.read();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(bytes1);
}

}    程序中的第43行,给出了下图中的提示:
    
    上图中说明:
    从txt文件中用FileInputStream类的实体fips的read()方法读取到的数据,是:
    “字节为单位”的数据,这些数据,需要用一个“整型变量”来接收.
    但是在我将程序中的“第11行”所定义的变量,进行了“重新修改为int类型”之后,得到的结果是:
    能够通过MyEclipse的编译,但是,不能得到“整个程序的预期结果”:
    从“向被上面的代码写入了阿拉伯数字19”的txt文件中,得到:“写好的阿拉伯数字19”...
    最终运行程序,得到的效果console窗口中的结果如下:
    
    请问诸位高手,我知道:
    Java的IO这一部分的知识,我是有欠缺的地方的,但是,由于时间的关系,我不得不“请CSDN中的高手为我做一下指导”了...
    希望高手能够告诉我:
    1.为什么我的代码里,不能够实现:
    “写入的阿拉伯数字19”,被我的读取的方法“完整读取出来”...?
    2.我的代码里,如果需要做一个“用户注册自己的用户名和密码”的“写到S端服务器,并且S端服务器进行存储”和“每次面对用户的连入进行提取到内存并且比对用户的ID和PWD”的功能的话...
    采用S端的Window操作系统的txt文件,作为整个系统的“数据库”的话...
    所涉及的“用户可能输入汉字”的“字符流”的操作,需要上面的知识,再掌握什么流和方法...?
    3.如果进行读取的用户数据,含有“UTF数据类型”,对于UTF-8和UTF-16的数据类型,在Java体系中,是怎样进行区分,并且上述的开发需求,需要注意哪些环节...?
    4.希望高手能够告诉我:实现上面的1.2.3.的开发需求的代码样例...
    谢谢高手的点拨!!
    一百分奉上!!
                                                             一位日日夜夜向着理想奔跑的筑梦者
                                                             2013年8月30日星期五早晨4点40分javaseio流服务器注册功能Java数据格式

解决方案 »

  1.   

    解释read()
    http://www.111cn.net/jsp/Java/41497.htm
    一些IO的例子,基本都有了
    http://www.cnblogs.com/rollenholt/archive/2011/09/11/2173787.html
      

  2.   

    遇到这种问题百度一下就出来了,你这样编辑这个帖子得浪费多少时间。
    Read()方法 返回的是所读取的字符在Unicode中的值,如:当读到1是返回49,2返回50,当读到末尾是返回-1。
    你的代码我看的不是很懂,是要把一个文件读出来写入到另一个文件?还是只要读文件到控制台?
    下面有个简单的文件Copy小例子,关于IO的操作网上到处都是,你发这么长的帖子太浪费时间了。public class FileCopy {
    /**
     * File Copy
     * @param args
     * @throws IOException
     */
    public static void main(String[] args) throws IOException { // 输入流
    InputStream in = new FileInputStream("D:/ReadFile.txt");
    // 输出流
    OutputStream out = new FileOutputStream("D:/WriteFile.txt", true); try {
    byte[] buffer = new byte[1024];
    while (true) {
    int byteRead = in.read(buffer);
    if (byteRead == -1)
    break;
    out.write(buffer, 0, byteRead);
    }
    } catch (FileNotFoundException ex) {
    ex.printStackTrace();
    } finally {
    if (in != null)
    in.close();
    if (out != null) {
    out.close();
    } } }}
      

  3.   

    凌晨五点还在coding 精神可嘉 
    加油
    少年!
      

  4.   

    你这程序能通过编译?还能运行处结果?。。
    43行,fips.read()返回值是个int,bytes1是个byte数组。你那样还能运行处结果
      

  5.   

    谢谢诸位高手的点拨!!
        谢谢顺溜哥!!http://bbs.csdn.net/topics/390552237?page=1
        谢谢假装死一会儿哥!!:http://bbs.csdn.net/topics/390544240?page=1#post-395288810
        昨晚就是你哥!!:http://bbs.csdn.net/topics/390544240?page=1#post-395288810
        希望上面三位哥,今后能够更多地帮助提携弟我这个“充满理想”“孜孜不倦”“想要攀爬到软件工程峰顶”的“疯狂的石头”!!
        liuyuhua0066哥,谢谢您的鼓励!!
        待到弟我学成了,一定不忘回报曾经帮助过弟我的人!
      

  6.   

    昨晚就是你哥,由于分数只有100分,并且,顺溜哥和假装死一会儿哥的工作已经做到这一步了,liuyuhua0066哥又给了弟我“饥渴的不行行”的鼓励...
        今天给您的分数,就少了些...
        今后,一定补上!!