2 z2432356108 z2432356108 于 2015.06.25 22:43 提问

题二的代码对吗?谢谢

题一、编写程序,创建一个数据文件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个回答

tongyi55555
tongyi55555   2015.06.26 09: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();
        }
    }
}
z2432356108
z2432356108 谢谢
2 年多之前 回复
devmiao
devmiao   Ds   Rxr 2015.06.25 23:01

假设文件路径没有问题,程序是对的。

z2432356108
z2432356108 那与题意相符合吗?如果不符合,麻烦指点一下,谢谢
2 年多之前 回复
vdsvfdsbfdgf
vdsvfdsbfdgf   2015.06.25 23:38

应该没错,你运行一下不是会更清楚嘛

z2432356108
z2432356108 回复大树底下的苹果: 谢谢
2 年多之前 回复
vdsvfdsbfdgf
vdsvfdsbfdgf 回复z2432356108: 符合的。
2 年多之前 回复
vdsvfdsbfdgf
vdsvfdsbfdgf 回复z2432356108:
2 年多之前 回复
z2432356108
z2432356108 那与题意相符合吗?如果不符合,麻烦指点一下,谢谢
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片