z2432356108 2015-06-25 14:43 采纳率: 33.3%
浏览 1426
已采纳

题二的代码对吗?谢谢

题一、编写程序,创建一个数据文件a.txt,并通过FileWrite对象向其中输出整数1~100
package demo1;
import java.io.*;

public class 题一 {

public static void main(String[] args) {
    // TODO 自动生成的方法存根


    try {
        FileWriter fw=new FileWriter("./src/a.txt",true);
        for(int i=1;i<=100;i++){
            fw.write(i+"  ");
        }
        fw.close();
        System.out.println("写入文件成功");
    } catch (IOException e) {
        // TODO 自动生成的 catch 块
        e.printStackTrace();
    }
}

}

题二、从上一题生成的数据文件a.txt中读取数据,每读一个数据计算它的平方和平方根,然后把这些数据输出到一个新数据文件b.txt
package demo1;
import java.io.*;
public class 题二 {

public static void main(String[] args){
    // TODO 自动生成的方法存根
    try {
        FileWriter fw=new FileWriter("src/b.txt",true);
        FileReader fr=new FileReader("src/a.txt");
        int result=fr.read();
        System.out.println("读取文件的内容如下:");
        while(result!=-1){
            System.out.print((String.valueOf((char)result)));
            result=fr.read();

        }
        for(int i=1;i<=100;i++){
            fw.write(i*i+"  "+Math.sqrt(i));
        }
        fw.close();
        System.out.println("写入文件成功");
        fr.close();
    } catch (FileNotFoundException e) {
        // TODO 自动生成的 catch 块
        e.printStackTrace();
    }catch (IOException e) {
        // TODO 自动生成的 catch 块
        e.printStackTrace();
    }
}

}

  • 写回答

3条回答

  • JonsonJiao 2015-06-26 01:00
    关注

    个人认为你第一题的代码符合要求,能够完成题目所要求的功能;但是第二题就不符合要求了,题目要求使用读取的数据计算平方和和平方根,而你的代码使用了自己的for循环进行输出,这是不符合要求的。也就是说你根本没有使用读取的数据。

    考虑到第二题的解决方案,建议你第一题也做相应的修改,即没输出一个数据就换行,然后第二题中使用BufferedReader.readLine()方法来读取每一行的数据,这样就可以直接使用了读取的数据了。使用FileReader时读取的是每一个char,需要对数字进行判断,不好用。下面是两道题目的我的答案,请参考:

    题一:

    import java.io.*;
    
    public class Question1 {
        public static void main(String[] args) {
            // TODO 自动生成的方法存根
    
            try {
                FileWriter fw = new FileWriter("./src/a.txt", true);
                for (int i = 1; i <= 100; i++) {
                    fw.write(i + "\r\n");
                }
                fw.close();
                System.out.println("写入文件成功");
            } catch (IOException e) {
                // TODO 自动生成的 catch 块
                e.printStackTrace();
            }
        }
    }
    
    

    题二

    import java.io.*;
    
    public class Question2 {
        public static void main(String[] args) {
            // TODO 自动生成的方法存根
            try {
                FileWriter fw = new FileWriter("src/b.txt", true);
                BufferedReader br = new BufferedReader(new FileReader("src/a.txt"));
                String result = br.readLine();
                System.out.println("读取文件的内容如下:");
                int readValue = 0;
                while (result != null) {
                    System.out.println(result);
                    readValue = Integer.valueOf(result);
                    fw.write(readValue * readValue + "\t" + Math.sqrt(readValue)
                            + "\r\n");
                    result = br.readLine();
    
                }
                System.out.println("写入文件成功");
                fw.close();
                br.close();
            } catch (FileNotFoundException e) {
                // TODO 自动生成的 catch 块
                e.printStackTrace();
            } catch (IOException e) {
                // TODO 自动生成的 catch 块
                e.printStackTrace();
            }
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题