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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wanghanqing 中级黑马   /  2016-9-1 22:39  /  941 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


1. 键盘每录入一次数据就将录入的数据在文件中存放成一行
2. 文件中最多存放5行
3.根据数据存放的时间上下排序,最早录入的在最后一行,最后录入的数据在文件的第一行

4 个回复

正序浏览
讲得太好了 ,顶顶顶!!!
回复 使用道具 举报
这个应该可以把键盘录入存进arraylist 然后倒序取出 再用bufferedwriter输出吧
回复 使用道具 举报
package cn.test3;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Collections;
import java.util.Map.Entry;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeMap;

/*
* 项目根目录下创建文件data.txt,文件用来存放键盘录入的数据
文件存放数据的格式要求:
1. 键盘每录入一次数据就将录入的数据在文件中存放成一行
2. 文件中最多存放5行???
3.根据数据存放的时间上下排序,最早录入的在最后一行,最后录入的数据在文件的第一行
*/
public class Test3 {

        public static void main(String[] args) throws IOException {
                // TODO Auto-generated method stub
                TreeMap<Integer, String> map=new TreeMap<Integer,String>(Collections.reverseOrder());
                int j=0;
                File file=new File("data.txt");
                if(!file.exists()){
                file.createNewFile();
                }
                BufferedWriter bufferedWriter=new BufferedWriter(new FileWriter(file));
                while(true){
                        j++;
                System.out.println("请输入录入信息:");
                String string=new Scanner(System.in).nextLine();
                map.put(j, string);
                System.out.println("是否还要录入?(0否 其他数字是)");
                int jh = new Scanner(System.in).nextInt();
                if(jh==0){
                        break;
                }
                }
                int num=0;
                Set<Entry<Integer, String>> entrySet = map.entrySet();
                for (Entry<Integer, String> entry : entrySet) {
                        num++;
                        if (num<6) {
                                bufferedWriter.write(entry.getValue());
                                bufferedWriter.newLine();
                                bufferedWriter.flush();
                        }else{
                                break;
                        }
                       
                }
               
                bufferedWriter.close();
        }

}
回复 使用道具 举报
1:用bufferedwriteStream  readLine()
2:可以用一个计数器,计数,每换行一次就+1 ,到5就不存储
3:这个采用倒序遍历,然后写入文件就行了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马