繁体   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