【发布时间】:2018-04-14 11:09:53
【问题描述】:
import java.io.*;
import java.util.ArrayList;
import java.util.StringTokenizer;
public class OutputToFile {
public static void main(String[] args) {
ArrayList<Flight> flightList = new ArrayList<Flight>();
try {
BufferedReader filein = new BufferedReader(new FileReader(new File("flight.dat")));
PrintWriter fileout = new PrintWriter(new FileWriter("output.txt"));
String line;
String from = null;
String to = null;
String flightNo = null;
String date = null;
String departure = null;
if (filein != null) { // not null if file exist
while ((line = filein.readLine()) != null) { //has more line to read
StringTokenizer st = new StringTokenizer(line);
while (st.hasMoreTokens()) {
from = st.nextToken();
to = st.nextToken();
flightNo = st.nextToken();
date = st.nextToken();
departure = st.nextToken();
}
Flight f = new Flight(from, to, flightNo, date, departure);
flightList.add(f);
}
}
fileout.println("Total number of flights :"+ flightList.size());
fileout.println("== Flight Plan ==");
for (Flight f: flightList) {
fileout.println();
fileout.println("From : "+ f.getFrom());
fileout.println("To : "+ f.getTo());
fileout.println("Flight Number : "+ f.getFlightNum());
fileout.println("Date : "+ f.getDate());
fileout.println("Departure Time : "+ f.getDepartureTime());
}
filein.close();
fileout.close();
} catch (IOException e) {
System.out.println(e);
}
}
}
因此,该程序从 flight.dat 读取数据并将数据写入 output.txt。之后,我必须手动打开“output.txt”文件以检查数据是否已写入。有没有办法让 output.txt 文件在 java 程序结束时运行(因为它被双击)?如果有这种方法,是否也可以根据需要运行任何文件(可能是 mp3 文件)?还有一件事,对我的代码有什么建议可以让它变得更好吗?谢谢你们的帮助。 :)
【问题讨论】:
-
为什么不把文件内容写完(即最后)打印出来?还需要数组列表还是看的时候直接写?
-
嗯,我同意你对 ArrayList 的看法。我其实不需要它。非常感谢您,先生。
标签: java file file-io file-handling fileinputstream