用java编写程序 1.建立一个文本文件,输入英语短文.编写一个程序,统计该文件中英文字母的个数,

用java编写程序1.建立一个文本文件,输入英语短文.编写一个程序,统计该文件中英文字母的个数,并将结果写入一个文本文件2.建立一个文本文件,输入学生三门课成绩,编写一个... 用java编写程序
1.建立一个文本文件,输入英语短文.编写一个程序,统计该文件中英文字母的个数,并将结果写入一个文本文件
2.建立一个文本文件,输入学生三门课成绩,编写一个程序,读入这个文件的数据,输出每门课成绩的最小值,最大值和平均值
展开
 我来答
zy1404
2016-03-16 · TA获得超过1387个赞
知道小有建树答主
回答量:784
采纳率:100%
帮助的人:475万
展开全部

public class Read {
    public static void main(String[] args) throws Exception {
        long size = readFileByChars("D://test.txt");
        write("D://test1.txt",size);

    }
    public static long readFileByChars(String fileName) {
        File file = new File(fileName);
        Reader reader = null;
        int num =0;
        try {
            reader = new InputStreamReader(new FileInputStream(file));
            int tempchar;
            while ((tempchar = reader.read()) != -1) {
                // 对于windows下,rn这两个字符在一起时,表示一个换行。
                // 但如果这两个字符分开显示时,会换两次行。
                // 因此,屏蔽掉r,或者屏蔽n。否则,将会多出很多空行。
                if (((char) tempchar) != 'r') {
                    System.out.print((char) tempchar);
                }
                if (tempchar>= 'A' && tempchar<= 'Z' ||tempchar>= 'a' && tempchar<= 'z'){
                    num++;
                }
            }
            reader.close();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (reader != null) {
                try {
                    reader.close();
                } catch (IOException e1) {
                }
            }
        }
        return num;
    }
    public static void write(String fileName,long size) throws IOException {
        File file = new File(fileName);
        Writer writer = null;
        try {
            writer =new FileWriter(new File(fileName));
            writer.write("英文字母共有:"+size);
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            if (writer!= null){
                writer.close();
            }
        }
    }

}

 

第二题:
public class Read {
    public static void main(String[] args) throws Exception {
       readFile("D://test.txt");
    }
    public static void readFile(String fileName ) throws Exception {
        BufferedReader isr = new BufferedReader(new FileReader(fileName));
        String str = null;
        int allnumber =1;
        str = isr.readLine();
        String [] strings = str.split("\\s+");
        float [] sum ={Float.valueOf(strings[0]),Float.valueOf(strings[1]),Float.valueOf(strings[2])};
        float [] min ={Float.valueOf(strings[0]),Float.valueOf(strings[1]),Float.valueOf(strings[2])};
        float [] max ={Float.valueOf(strings[0]),Float.valueOf(strings[1]),Float.valueOf(strings[2])};
        System.out.println(str);
        while ((str = isr.readLine())!= null){
            System.out.println(str);
            deal(str,sum,min,max);
            allnumber++;
        }
        if (isr!= null){
            isr.close();
        }
        System.out.println("三门课最大值:"+max[0]+"\t"+max[1]+"\t"+max[2]);
        System.out.println("三门课最小值:"+min[0]+"\t"+min[1]+"\t"+min[2]);
        System.out.println("三门课平均值:"+sum[0]/allnumber+"\t"+sum[1]/allnumber+"\t"+sum[2]/allnumber);
    }
    public static void deal(String str, float[] sum, float[] min, float[] max){
        String [] strings = str.split("\\s+");
        for (int i=0;i<3;i++) {
            sum[i] = sum[i] + Float.valueOf(strings[i]);
            if (max[i] < Float.valueOf(strings[i])) {
                max[i] = Float.valueOf(strings[i]);
            }
            if (min[i] > Float.valueOf(strings[i])) {
                min[i] = Float.valueOf(strings[i]);
            }
        }
    }
}

 

百度网友98287f5
2016-03-16 · TA获得超过145个赞
知道小有建树答主
回答量:206
采纳率:0%
帮助的人:85.8万
展开全部

  package mainpackage;
  /**
  * 首先  得知道文件位置
  * 然后 绑定文件的字符流
  * 接着 得到字符流之后就可以每行进行字符读取
  * 最后 得到每行字符后就可以判断了
  * 注:我也是闲着没事,顺便写的。其实倒还写的有些复杂了
  * 你有什么不懂得可以随时问我
  * 在不在就不敢保证了
  *
  */
  import java.io.BufferedReader;
  import java.io.File;
  import java.io.FileReader;
  import java.io.IOException;

  public class ReadFileBytes {
  public static void main(String[] args) throws IOException {
  String fileDir = "H:/read.txt";                //文件路劲
  File file = new File(fileDir);                 //实例化文件
  FileReader in =  new FileReader (file);        //实例化文件读取对象
  BufferedReader bf = new BufferedReader(in);    //绑定字符流
  String str ;                                   //拼接字符对象
  String deStr = "";                            //拼接结果
  int len = 0;                                     //字母个数
  while ((str = bf.readLine() )!=null) {               //循环行,获取每行的字符并且进行拼接
  deStr+=str;
  }
  byte[] b = deStr.getBytes();                      //将拼接的字符串beye化
  for(byte s:b){                                    //循环数据 如果为字母 就将长度加一
  if(s>='A'&&s<='Z'||s>='a'&&s<='z'){
  len++;
  }
  }
  System.out.println(len);                        //打印长度
  }
  }
追问
还有要将得出的结果写入文件呢
追答

楼下的这个方法是如果没有大问题是可行的,你只需要传入一个文件路径和得到的字母个数。保证这个文件存在。“英文字母共有:XX”就会被输入这个文件,并且清空原来的内容。

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2016-11-15
展开全部
tretches before us in the constant panorama
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式