[英]This is for an assignment. I need to read in a text file and then write a text file with the original five lines written in reverse
这是我的任务说明,
FileCopier的目的是读取文件,逐行反转文件的内容,然后打印出新文件。
一个例子:
输入文件内容:
这是文件的开头。 第二行。 这是第三行。 第四线。 文件末尾。
应该读入并打印以下文件:
文件末尾。 第四线。 这是第三行。 第二行。 这是文件的开头。
您将需要创建自己的输入文件进行测试。 我将使用自己的文件来测试您的程序。 您的程序将需要确保满足以下要求:
提交您的类文件和测试过的文本文件。 随意拉上拉链。
我的问题是如何使用已读入的数组并反向打印它。 我敢肯定,我已经很接近了,但是似乎无法使其正常工作。 任何帮助或指导将不胜感激。 以下是我的作业代码。
import java.io.*;
import java.util.Scanner;
public class TestThingsOut {
private static String filepath = "."+File.separator+"src"+File.separator;
private static String inputFileName = "KeyWestTemp.txt";
private static String outputFileName = "outputTemp.txt";
private static Scanner s1;
private static Scanner s2;
public static void main(String[] args) {
TestThingsOut test = new TestThingsOut();
String inputFile = filepath.concat(inputFileName);
String outputFile = filepath + outputFileName;
test.execute(inputFile, outputFile);
}
private void execute(String inputFileName, String outputFileName) {
String[] fileContent = readArray(inputFileName);
writeOutFile(outputFileName, fileContent);
}
public static String[] readArray(String inputFilename) {
int ctr = 0;
try {
s1 = new Scanner(new File(inputFilename));
while (s1.hasNextLine()) {
ctr = ctr + 1;
s1.nextLine();
}
String[] lines = new String[ctr];
s2 = new Scanner(new File(inputFilename));
for (int i = 0; i < ctr; i = i + 1) {
lines[i] = s2.nextLine();
}
return lines;
} catch (FileNotFoundException e) {
System.out.println("File not found");
}
return null;
}
private void writeOutFile(String outputFileName, String[] fileContent) {
FileWriter fileWriter = null;
try {
fileWriter = new FileWriter(outputFileName);
String[] lines2 = readArray(inputFileName);
for (int i = lines2.length; i >= 0; i--) {
fileWriter.write(lines2.toString());
}
} catch (IOException e) {
e.printStackTrace();
}
finally {
if (fileWriter != null) {
try {
fileWriter.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
这是我要读取的文件,
最初可以使用,我可以使用Systemoutprint将其打印出来,但是我必须按照作业的说明将其写到另一个文件中,我不太清楚。
可以使用ArrayList
或Vector
来存储文件的行,而不是使用String
数组。
ArrayList<String> arr=new ArrayList<String>();
该ArrayList
将保存文件的行,然后可以通过遍历ArrayList将相同的行写入不同的文件。
//Reading the file
while (s1.hasNextLine()) {
String s= s1.nextLine();
arr.add(s);
}
//Writing the file
for (int i = arr.size()-1; i >= 0; i--) {
fileWriter.write(arr.get(i).toString());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.