面试答案

今天上午一个朋友发了一份试卷给我做,题目如下:
功能一:任意输入一个起始号码和一个截止号码,在一个TXT文件中产生所有的号码(可连续添加)。
例:输入起始号码20000,截止号码29999,则产生从20001到29999之间的所有1万个号码。
功能二:乱序。用一个算法(方式不限),使上述连续数字的顺序完全打乱,看不出任何规律。
功能三:排列。可以把文件中的号码按两种方式排列:
1)按逗号分隔。例:20001,20002,20003
2)按回车分隔。例:
20001
20002
20003
功能一答案:
[code]public static void printStreamDemo(){
try{
FileOutputStream out=new FileOutputStream("C:/test.txt");
PrintStream p=new PrintStream(out);
for(int i=20000;i<30000;i++)
p.print(i+",");
} catch (FileNotFoundException e){
e.printStackTrace();
}
}[/code]


功能二答案:
[code]public static String bufferedReaderDemo() {
StringBuffer buf = new StringBuffer();
try {
FileInputStream inputtextfile=new FileInputStream("c:/test.txt");
BufferedInputStream buffer1=new BufferedInputStream(inputtextfile);
byte bufferArray[]=new byte[1024*1024];
int n=0;

while((n=buffer1.read(bufferArray))!=-1)
{
String temp=new String(bufferArray,0,n);
buf.append(temp);
}
buffer1.close();
inputtextfile.close();
}catch (IOException e){
e.printStackTrace();
}
String[] arr = buf.toString().split(",");
int i = arr.length;
List list = new ArrayList();
for(int j = 0; j < i; j++) {
list.add(arr[j]);
}
Collections.shuffle(list);
for(int k = 0; k < list.size(); k++) {
System.out.println(list.get(k));//用输出流把list.get(k)写入文件中
}

}[/code]

功能三在功能一已经实现啦!
但是我觉得功能一没按他的要求做,理应写入文本格式是2000020001......299999,在这里就要判断输入数字的位数,希望。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值