我想将最大的数字从一个文件复制到另一个文件?但是,我在输入数字时遇到了一些问题

时间:2016-05-09 16:03:07

标签: java

每当我尝试写这样的数字时 -

(1
2
3
4
56)

只需要第一个数字。我的代码出了什么问题。这是我的代码。

BufferedReader out = new BufferedReader(new FileReader("Nos for finding highest.txt"));
PrintWriter in = new PrintWriter(new FileWriter("third.txt"));
String str = " ";
str = out.readLine();
String[] numbers = str.split("\n");
int[] array = new int[numbers.length];
int count = 0;
for (String strs : numbers) {
    array[count++] = Integer.parseInt(strs);
}
int max = array[0];
for (int c : array) {
    if (c > max)
        max = c;
}

in.println(new Integer(max).toString());

in.close();

out.close();

如果我在上面的代码中使用while((str = out.readLine()) != null),则会打印出所有数字,而不是打印max(Largest Number)

2 个答案:

答案 0 :(得分:1)

如果输入的数字在同一行上,则使用空格分割输入:

String[] numbers = str.split(" ");

如果文件中的数字都是新行,请使用

String[] numbers = str.split("\n"); 

答案 1 :(得分:0)

由于格式原因,我会扩展我的评论:假设您的文件每行有一个数字,您首先要将它们全部读入列表:

from datetime import datetime
import time

datetest = "2016.05.09" + " "+ "15:45:45"
d = datetime.strptime(datetest, "%Y.%m.%d %H:%M:%S")
t = d.timetuple()
res = int(time.mktime(t)) * 1000
print(res)  # -> 1462833945000

然后迭代并寻找最高数字:

List<Integer> list = new LinkedList<>();
while((str = out.readLine()) != null) {
  //assuming the line is not empty and contains a valid integer
  list.add( Integer.valueOf(str) ); 
}