[英]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.