A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 浅色寂语66 中级黑马   /  2016-8-5 23:46  /  810 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1.获取一个文本文件上每个字符出现的次数,将结果写在times.txt上
2.从键盘接收两个文件夹路径,把其中一个文件夹中(包含内容)拷贝到另一个文件夹中
3.编写一个程序,把指定目录下的所有文件拷贝到另一个目录中, 拷贝成功后,把后缀名是.java的改成.txt

/*
       4.
        附件中是某班级的连续两次考试成绩,请写个程序,计算出上次考试不及格本次考试超过70分的同学数量及详细信息~~
         
        打印格式:
         
        上次考试不及格,本次超过70分的学生总共有: 2 位!
        详细信息如下:
        孙允阔 同学: 上次考试成绩为: 58.0 ,本次考试成绩为: 70.0 ,进步很大~~
        孟阳 同学: 上次考试成绩为: 18.0 ,本次考试成绩为: 74.0 ,进步很大~~

4 个回复

倒序浏览
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

/*"C:\\Users\\john\\Desktop\\C:\\Users\\john\\Desktop\\成绩统计1.txt"
* 4.
附件中是某班级的连续两次考试成绩,请写个程序,计算出上次考试不及格本次考试超过70分的同学数量及详细信息~~

打印格式:

上次考试不及格,本次超过70分的学生总共有: 2 位!
详细信息如下:
孙允阔 同学: 上次考试成绩为: 58.0 ,本次考试成绩为: 70.0 ,进步很大~~
孟阳 同学: 上次考试成绩为: 18.0 ,本次考试成绩为: 74.0 ,进步很大~~ */
public class work1 {
public static void main(String[] args) throws Exception {
HashMap<String,Double> firstScore = new HashMap<String, Double>();
HashMap<String,Double> secondScore = new HashMap<String, Double>();
System.out.println("请输入:");
firstScore = getMap(firstScore);
System.out.println("请输入:");
secondScore = getMap(secondScore);
getInformation(firstScore,secondScore);
}
private static void getInformation(HashMap<String, Double> firstScore,
HashMap<String, Double> secondScore) {
for(Map.Entry<String, Double> firstEntry:firstScore.entrySet()){
for (Map.Entry<String, Double> secondEntry : secondScore.entrySet()) {
String key = firstEntry.getKey();
Double value = firstEntry.getValue();
String key2 = secondEntry.getKey();
Double value2 = secondEntry.getValue();
if(value<60 && value2>70 &&  key.equals(key2)){
System.out.println(key+"同学,上次的考试成绩是"+value+"分,本次的考试成绩" +
"是"+value2+"分,进步很大,加油!");
}
}
}
}

private static HashMap<String, Double> getMap(HashMap<String, Double> Score) throws IOException {
Scanner sc = new Scanner(System.in);
String s = sc.next();
FileReader inn = new FileReader(s);
BufferedReader in = new BufferedReader(inn);
String len;
while((len = in.readLine()) != null){
String[] ss = new String[3];
ss=len.split("\\s+");
Score.put(ss[0],Double.valueOf(ss[1]));
}
return Score;
}
回复 使用道具 举报
本帖最后由 lvzhenyang123 于 2016-8-12 20:38 编辑

2.获取一个文本上每个字符出现的次数,将结果写在times.txt  * 分析:          * 1,创建带缓冲的输入流对象   
       * 2,创建双列集合对象TreeMap   
       * 3,将读到的字符存储在双列集合中,存储的时候要做判断,如果不包含这个键,就将键和1存储,如果包含这个键,就将该键和值加1存储         
* 4,关闭输入流   
      * 5,创建输出流对象         
* 6,遍历集合将集合中的内容写到times.txt中   
      * 7,关闭输出流   
       * @param args          * @throws IOException         
  */      
  public static void main(String[] args) throws IOException {   
              // TODO Auto-generated method stub     
    BufferedReader br=new BufferedReader(new FileReader("zzz.txt"));  
       TreeMap<Character,Integer> tm=new TreeMap<>();   
      int ch;      
  while ((ch=br.read())!=-1) {      
                   char c=(char)ch;      
                   tm.put(c ,!tm.containsKey(c)? 1:tm.get(c)+1);         
       }      
  br.close();     
     BufferedWriter bw=new BufferedWriter(new FileWriter("times.txt")) ;   
     for (Character key: tm.keySet()) {     
            switch (key) {      
          case '\t':            
            bw.write("\\t" + "=" + tm.get(key));   
                      break;            
     case '\n':            
             bw.write("\\n" + "=" + tm.get(key));      
                   break;      
          case '\r':           
              bw.write("\\r" + "=" + tm.get(key));   
                     break;           
      default:            
             bw.write(key+"="+tm.get(key));      
                   break;        
         }
bw.newLine();         
} bw.close();     
    }
回复 使用道具 举报
本帖最后由 lvzhenyang123 于 2016-8-12 20:41 编辑

/**          * @param args          * 从键盘接收两个文件夹路径,把其中一个文件夹中(包含内容)拷贝到另一个文件夹中   
              * @throws IOException           */  
      public static void main(String[] args) throws IOException {   
              // TODO Auto-generated method stub        copy(demo(),demo());           
            }      
    public static File demo() {     
            Scanner sc=new Scanner(System.in);  //输入一个文件夹路径   
                 System.out.println("请输入文件夹路径");     
               String line=sc.nextLine();            
        File f=new File(line);           
         while (true) {          //循环        
                 if (!f.exists()) {                  
              System.out.println("输入的文件夹不存在");         
                } else if(f.isFile()){              
            System.out.println("输入的是文件路径,请输入文件夹路径");     
                    }else{               
                  return f;            
            }                 }         }           
       public static void printJavaFile(File dir) {         
       //1,获取到该文件夹路径下的所有的文件和文件夹,存储在File数组中   
             File[] subFiles = dir.listFiles();      
          //2,遍历数组,对每一个文件或文件夹做判断         
        for (File subFile : subFiles) {               
         //3,如果是文件,并且后缀是.java的,就打印        
                 if(subFile.isFile() && subFile.getName().endsWith(".java")) {         
                       System.out.println(subFile);            
            //4,如果是文件夹,就递归调用            
             }else if (subFile.isDirectory()){           
                      printJavaFile(subFile);                 
        }                 }         }      
  public static void copy(File file1,File file2) throws IOException{           
          File file3=new File(file1 ,file2.getName());      
              file3.mkdir();            
        File[] d=file2.listFiles();         
            for (File file : d) {                  
               if (file.isFile()) {                 
                        BufferedInputStream bis=new BufferedInputStream(new FileInputStream(file));      
                                     BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream(new File(file3,file.getName())));                                 int a;                     
            while ((a=bis.read())!=-1) {      
                                   bos.write(a);            
                     }                           
     bos.close();                          
       } else {                                   
      copy(file3,file);                           
       }                  
      }     
    }
回复 使用道具 举报
膜拜楼上巨巨
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马