簡體   English   中英

這是一項任務。 我需要讀入一個文本文件,然后用原來的五行反寫一個文本文件

[英]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的目的是讀取文件,逐行反轉文件的內容,然后打印出新文件。

一個例子:

輸入文件內容:

這是文件的開頭。 第二行。 這是第三行。 第四線。 文件末尾。

應該讀入並打印以下文件:

文件末尾。 第四線。 這是第三行。 第二行。 這是文件的開頭。

您將需要創建自己的輸入文件進行測試。 我將使用自己的文件來測試您的程序。 您的程序將需要確保滿足以下要求:

  1. 您的資源將需要關閉。
  2. 異常將需要得到適當的處理(捕獲並輸出到控制台或記錄器)
  3. 您的程序應實現以下方法:public void execute(String inputFilename,String outputFilename){}

提交您的類文件和測試過的文本文件。 隨意拉上拉鏈。

我的問題是如何使用已讀入的數組並反向打印它。 我敢肯定,我已經很接近了,但是似乎無法使其正常工作。 任何幫助或指導將不勝感激。 以下是我的作業代碼。

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();
                }
            }
        }
    }

 }

這是我要讀取的文件,

  1. 大家好2你好3我很好4謝謝5這是第5行

最初可以使用,我可以使用Systemoutprint將其打印出來,但是我必須按照作業的說明將其寫到另一個文件中,我不太清楚。

可以使用ArrayListVector來存儲文件的行,而不是使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM