朋友的意思是说第四个程序的
DataInputStream dis;
dis=null
依次类推
对吗

解决方案 »

  1.   

    我这里没有jdk帮助文档,不过我有疑问
    1。in是什么类型的?不是所有iostream类都有.readLine方法的
    2。DataInputStream 的构造方法里有说支持FileInputStream吗?java里很多io类引用各自的读取文件类,并不是所有file related class都可以构造的
    3。同2
    4。如果提示出错的话,可能是前面有错,或者你没有import那个类。提示没有初始化,应该在引用的时候提示,而不是定义的时候
      

  2.   

    你给半截代码,谁知道1里面in 是什么东西,麻烦写全一点
    2 new NOT New
    3 try{
      .......=new ......
    }
    或者 public static void main(String[] args) throws IOException
      

  3.   


    这是第四个程序。我修改了一些。但是系统要求用
    C:\javacode>javac   LineNumberDemo.java -deprecation 命令编译
    //【代码7-6-5】
    //LineNumberDemo.java
    import java.io.*;
    import java.io.EOFException;
    class LineNumerDemo
    {
    public static void main(String args[])
    {
    //定义数据输入流
    DataInputStream dis;
    dis=null;
    //定义文件输入流
    FileInputStream fis;
    fis=null;
    //定义缓冲区输入流
    BufferedInputStream bis;
    bis=null;

    //定义行号输入流
    LineNumberInputStream lnis;
    lnis=null;
    String strLine;

    try
    {
    //创建文件输入流对象,与实际文件相连
    fis = new FileInputStream("LineNumberDemo.java");
    //根据文件输入流对象创建缓冲区输入流
    bis = new BufferedInputStream(fis);
    //根据缓冲区输入流对象创建行号输入流
    lnis = new LineNumberInputStream(bis);
    //根据行号输入流创建数据输入流
    dis = new DataInputStream(lnis);
    //从数据输入流中读数据
    while((strLine=dis.readLine())!=null)
    {
    //从行号输入流中取得行号
    int nLineNumber = lnis.getLineNumber();
    //打印出行号和当前行内容
    System.out.println(nLineNumber+":"+strLine);
    }
    }
    catch(Exception e)
    {
    e.printStackTrace();
    }
    finally
    {
    //关闭数据输入流
    dis.close();
    }
    }
    }编译结果:C:\javacode>javac   LineNumberDemo.java -deprecation
    LineNumberDemo.java:20: warning: java.io.LineNumberInputStream in java.io h
    en deprecated
                    LineNumberInputStream lnis;
                    ^
    LineNumberDemo.java:31: warning: java.io.LineNumberInputStream in java.io h
    en deprecated
                            lnis = new LineNumberInputStream(bis);
                                       ^
    LineNumberDemo.java:35: warning: readLine() in java.io.DataInputStream has
    deprecated
                            while((strLine=dis.readLine())!=null)
                                              ^
    LineNumberDemo.java:50: unreported exception java.io.IOException; must be c
     or declared to be thrown
                            dis.close();
                               ^
    1 error
    3 warnings
    请问这个该怎么解决呢?谢谢
      

  4.   

    这是第一个程序
    //DataIOTest.java
    import java.io.*;public class DataIOTest
    {
        public static void main(String[] args) throws IOException
    {
            //创建数据输出流
            DataOutputStream out = new DataOutputStream(new
       FileOutputStream("content.txt"));
    //初始化输出数据
            double[] prices = { 19.99, 9.99, 15.99, 3.99, 4.99 };
            int[] units = { 12, 8, 13, 29, 50 };
            String[] descs = {
     "Java T-shirt",
       "Java Mug",
       "Duke Juggling Dolls",
       "Java Pin",
       "Java Key Chain" 
    };
            //数据输出
            for (int i = 0; i < prices.length; i ++)
    {
                out.writeDouble(prices[i]);
                out.writeChar('\t');
                out.writeInt(units[i]);
                out.writeChar('\t');
                out.writeChars(descs[i]);
                out.writeChar('\n');
            }
    //关闭数据输出流
            out.close();        //创建数据输入流
            DataInputStream in = new DataInputStream(
    new  FileInputStream("content.txt"));        double price;
            int unit;
            String desc;
            double total = 0.0;        try 
    {
    //利用数据输入流读文件内容
                while (true)
    {
                    price = in.readDouble();
                    in.readChar();       // throws out the tab
                    unit = in.readInt();
                    in.readChar();       // throws out the tab
                    desc = in.readLine();//这里出错
                    System.out.println("You've ordered " +
        unit + " units of " +
        desc + " at $" + price);
                    total = total + unit * price;
                }
            } 
    //捕获异常
    catch (EOFException e)
    {
    e.printStackTrace();
            }
            System.out.println("For a TOTAL of: $" + total);
    //关闭数据输入流
            in.close();
        }
    }
    编译结果:
    C:\javacode>javac  DataIOTest.java -deprecation
    DataIOTest.java:53: warning: readLine() in java.io.DataInputStream
    ecated
                    desc = in.readLine();
                             ^
    1 warning
    请问应该怎么解决?谢谢
      

  5.   

    是warning 还是error?
    如果warning,不要紧,这不是错误,因为readLine()被sun deprecated了,即不推荐使用了(当然你还可以照样用它),原因是DataInputStream.readLine()可能无法正确将流中的bytes转换成chars,解决方法是将
    DataInputStream d=new DataInputStream(in);转成
    BufferedReader r=new BufferedReader(new InputStream(in));详见java.io.DataInputStream#readLine()