用java输入txt文件,找出 txt文件中数字的最大值和最小值

原题目是写一个程序,输入几个数字,在最后输入-99结束。程序会找出这几个数字的最大值和最小值。

现在老师要求用txt文件导入数字. 求程序

import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

public class Test {

/**
* 从文件中读取数字
* @return
*/
public static int[] readFromFile(String path) {
int[] numbers = null;

File file = new File(path); // 读取文件 参数为文件路径 ,文件中数字以逗号分隔 如:12,23,34
FileInputStream filein =null;
DataInputStream di = null;
try {
filein = new FileInputStream(file);
di = new DataInputStream(filein);
int c;
byte [] bytes = new byte[1024];
StringBuffer sb = new StringBuffer();
while((c=filein.read(bytes))!=-1){
sb.append(new String(bytes,0,c,"GBK"));
}
String str = sb.toString();

String[] numberStr = str.split(",");
int size = numberStr.length;
numbers = new int[size];
for(int i = 0;i < size;i++) { // 转换string到int
numbers[i] = Integer.parseInt(numberStr[i]);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if(filein != null) {
filein.close();
}
if(di!=null) {
di.close();
}
} catch(IOException e) {
e.printStackTrace();
}
}

return numbers;
}

/**
* 递归排序
* 从小到大
* @param numbers
* @param size
*/
public static void sort(int[] numbers, int size) {
if(size <= 1)
return;

int tmp = 0 ;
for(int i = 0;i < (size-1);i++) {
tmp = numbers[i];
if(tmp > numbers[i+1]) {
numbers[i] = numbers[i+1];
numbers[i+1] = tmp;
}
}

sort(numbers, size -1);
}

public static void main(String[] args) {
int[] numbers = Test.readFromFile("E:/files/test.txt");
Test.sort(numbers, numbers.length);

for(int number : numbers)
System.out.println(number);
}

}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-03-03
C语言写的可以吗?追问

作业是java的,还是java吧...万一用不了,你岂不是白写...

相似回答