| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3853 人关注过本帖
标题:[求助]请教一道io方面的面试题
取消只看楼主 加入收藏
limaoyuan
Rank: 1
等 级:新手上路
帖 子:493
专家分:0
注 册:2006-6-25
收藏
 问题点数:0 回复次数:6 
[求助]请教一道io方面的面试题

要求:

如在E盘下有一个Test.txt文本文件内容是
#4
#刘德华#89#77#60
#张信哲#76#97#70
#周杰伦#89#88#90
#随便啦#87#70#80


要求通过java读取文本并把文本中的每一行后面的三个成绩相加,
最后按从大到小的顺序输出到另一个文本文件中.

输出后的文本文件内容应为:
#4
#周杰伦#267
#张信哲#243
#随便啦#237
#刘德华#226


尽量把此题做成一个模块性质的东西,并不是单独当成一道题做!
-----------------------------------------------------------------------------------

哪位朋友能做的好的帮忙写一个好吗?

我写了一个,但是过程方法太麻烦了...希望高手能帮忙写个更棒的!

期待中....................

-------------------------------------------------------------------------------------
以下是本人所写代码 :

FileRead类

import java.io.*;
import java.util.*;

class FileRead
{
static BufferedReader inReader = null;
static BufferedWriter outWriter = null;
static String strIn = "";
static String strOut = "";
static int[] scoreCount = new int[5];
static HashMap hm = new HashMap();

//读文件
public static void readFile(String fileName)
{
try
{
inReader = new BufferedReader(new FileReader(fileName));
strIn = inReader.readLine();
int num = 0;
while(strIn != null)
{
//System.out.println(strIn);
FileRead.splitFile(strIn,num);
strIn = inReader.readLine();
num++;
}
sortFile(scoreCount);
}
catch(Exception e)
{
e.printStackTrace();
}
}

//以#分割文件
public static void splitFile(String strTmp,int num)
{
String[] strArray = strTmp.split("#");
//System.out.println(strArray.length);
int score = 0;
for(int i=2;i<strArray.length;i++)
{
score += Integer.parseInt(strArray[i]);
}
scoreCount[num] = score;
hm.put(score,strArray[1]);
//System.out.println("总分:" + score);
}


//排序
public static void sortFile(int[] n)
{
int tmp;
for(int i=0;i<n.length;i++)
{
for(int j=i+1;j<n.length;j++)
{
if(n[i] > n[j])
{
tmp = n[i];
n[i] = n[j];
n[j] = tmp;
}
}
}


writeFile("E:\\New.txt");
//排好后打印出来
writeNow("#4");
System.out.println("#4");
for(int i=4;i>=1;i--)
{
String strOut = "#"+hm.get(n[i])+"#"+n[i];
writeNow(strOut); //把内容写到新文件中.
System.out.println(strOut);
}
try
{
outWriter.flush();
}
catch(IOException ioe)
{
ioe.printStackTrace();
}
}

//写入文件
public static void writeFile(String fileName)
{
try
{
outWriter = new BufferedWriter(new FileWriter(fileName));
}
catch(Exception e)
{
e.printStackTrace();
}
}

//开始写内容
public static void writeNow(String strOut)
{
try
{
outWriter.write(strOut);
outWriter.newLine();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}

Test类

class Test
{
public static void main(String[] args)
{
FileRead.readFile("E:\\Txt.txt");


}
}

________________________________________________________________________

搜索更多相关主题的帖子: 面试 
2007-01-19 17:25
limaoyuan
Rank: 1
等 级:新手上路
帖 子:493
专家分:0
注 册:2006-6-25
收藏
得分:0 

你别说,我刚看了一下你说的这个类的大概介绍,果然好像很适用这道题目...
千里你太强了..你告诉我的这个类我以前都没有听说过..佩服,看来想成为合适的程序员我要走的路还有太长太长太长......


我在说's blog   http://www..cn
2007-01-19 17:37
limaoyuan
Rank: 1
等 级:新手上路
帖 子:493
专家分:0
注 册:2006-6-25
收藏
得分:0 

千里,你可以用StreamTokenizer类大概写下这道题的解法吗?

我看了看这个类,不知道用什么方法来分割流中的内容.

这个不像StringTokenizer类,有个构造方法StringTokenizer(String str, String delim) 里的delim可以指定以"#"符号来分割,而在StreamTokenizer类中有类似的方法吗?


我在说's blog   http://www..cn
2007-01-19 19:24
limaoyuan
Rank: 1
等 级:新手上路
帖 子:493
专家分:0
注 册:2006-6-25
收藏
得分:0 

谢谢千里,我现在就去好好看看你写的代码...


我在说's blog   http://www..cn
2007-01-19 21:59
limaoyuan
Rank: 1
等 级:新手上路
帖 子:493
专家分:0
注 册:2006-6-25
收藏
得分:0 
1. private TreeMap<String,Integer> result;//表示从名字到分数的映射

<>括号中是什么意思?

2. public ResultFile(String file,char... cs)

这里的形参为什么要有...呀?代理什么意思?

3. for(char c:cs)
{
st.whitespaceChars(c,c);
}

请问for(char c:cs)什么意思呀?
st.whitespaceChars(c,c); //为什么二个都是c?


我在说's blog   http://www..cn
2007-01-19 22:17
limaoyuan
Rank: 1
等 级:新手上路
帖 子:493
专家分:0
注 册:2006-6-25
收藏
得分:0 
多谢版主...让我又长了不好知识...

我在说's blog   http://www..cn
2007-01-19 22:32
limaoyuan
Rank: 1
等 级:新手上路
帖 子:493
专家分:0
注 册:2006-6-25
收藏
得分:0 

好!谢谢版主提醒...我昨天刚下了jdk1.6
其实我一直也在用1.5不过老师没有强调和1.4的区别..
比如增强的for循环什么的...学习不能太被动..我会继续努力的......

从学java到今天也有3个月了,在这里提了好多问题,千里无疑给了我很多帮助,甚至比老师对我的帮助还大,
在这里和你说声谢谢!

希望千里能看到..你是个无私的版主.....


我在说's blog   http://www..cn
2007-01-20 11:58
快速回复:[求助]请教一道io方面的面试题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027177 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved