下面是我的一本书里的程序,功能是把键盘输入的字符串首先保存到文件中,然后在将文件中的内容读取出来。我已经按照程序的要求在编译好的当前类的目录下新建了一个叫myData的目录,并且还在目录里新建了叫text.dat的文件,可是我运行的时候达不到预期的目的,看了好长时间都看不出出什么问题了,请各位高手不吝赐教mport java.io.*;public class FileInOutput
{
  public static void main(String[] args)
  {
    byte[] inCh = new byte[100];
    byte[] outCh = new byte[100];
    int bytes = 0;
    System.out.println("请输入一些字符串:");
    try
    {
      bytes = System.in.read(inCh, 0, 100);
    }
    catch (IOException e)
    {
      System.out.println(e.toString());
    }
    File myFile1 = new File("myData", "test.dat");
    if (myFile1.exists())
    {
      try
      {
        System.out.println("将开始输入的字符写入到文件中。");
        FileOutputStream fout = new FileOutputStream(myFile1);
        fout.write(outCh);
        fout.close();
        System.out.println("已结束将字符输入写入到文件中.");
        System.out.println("开始从文件中读出已写入的内容。");
        FileInputStream fin = new FileInputStream(myFile1);
        bytes = fin.read(inCh, 0, 100);
        fin.close();
        String inStr = new String(inCh);
        System.out.println("从文件中读出的字符串内容是:" + inStr);
      }
      catch (IOException e)
      {
        System.out.println(e.toString());
      }
    }
    System.out.println("按任意键继续…");
    try
    {
      bytes = System.in.read();
    }
    catch (IOException e) {}
  }
}

解决方案 »

  1.   

    修改下代码就可以了,主要错误原因:1,FILE的构造函数,你用的的是File(String parent, String child)那应该先指定父路径;2,是fout.write(outch) 应该改成inchpublic class FileInOutput 

      public static void main(String[] args) 
      { 
        byte[] inCh = new byte[100]; 
        byte[] outCh = new byte[100]; 
        int bytes = 0; 
        System.out.println("请输入一些字符串:"); 
        try 
        { 
          bytes = System.in.read(inCh, 0, 100); 
        } 
        catch (IOException e) 
        { 
          System.out.println(e.toString()); 
        } 
        File myFile1 = new File("D:/myData/test.dat"); 
        if (myFile1.exists()) 
        { 
          try 
          { 
            System.out.println("将开始输入的字符写入到文件中。"); 
            FileOutputStream fout = new FileOutputStream(myFile1); 
            fout.write(inCh); 
            fout.close(); 
            System.out.println("已结束将字符输入写入到文件中."); 
            System.out.println("开始从文件中读出已写入的内容。"); 
            FileInputStream fin = new FileInputStream(myFile1); 
            bytes = fin.read(inCh, 0, 100); 
            fin.close(); 
            String inStr = new String(inCh); 
            System.out.println("从文件中读出的字符串内容是:" + inStr); 
          } 
          catch (IOException e) 
          { 
            System.out.println(e.toString()); 
          } 
        } 
        System.out.println("按任意键继续…"); 
        try 
        { 
          bytes = System.in.read(); 
        } 
        catch (IOException e) {} 
      } 
    }