读取和写入txt /日志文件的程序

时间:2018-03-15 22:19:34

标签: java file filewriter file-read

我是编程新手,我有基本知识。

我正在尝试制作一个程序:

  1. 读取现有文件的路径
  2. 读取我要从现有文件中提取的字符串。
  3. 读取创建新文件的路径。
  4. 使用指定路径从第3点创建一个文件,其中包含第2点中选定的单词。
  5. 例如,如果我有一个log / txt文件。从它我想要在第2点提取我正在从键盘上读取的所有字符串。

    在此之后,我希望所有这些字符串都写在新的log / txt文件中。

    我希望你知道我正在做什么。

    这是我直到现在所写的内容,但我有点陷入困境,因为我还在学习编码语法,所以很难实现它。

    class MySubView extends MyView {

2 个答案:

答案 0 :(得分:0)

  1. 做4个较小的项目,每个项目都执行您列出的步骤之一。
  2. 使用硬编码路径重新执行此项目,而不是从控制台输入,以避免一些复杂性。
  3. 一旦#2工作,我会添加控制台输入,但使用 StringUtils.isBlank 添加输入检查以处理错误输入。
  4. 简而言之,你试图同时做太多事情。编程可以很像数学方程式,你一次只需要1个未知数。

答案 1 :(得分:0)

所以伙计们......我试着重新编写程序并搜索更多关于如何完成我想要做的事情,我遇到的问题就是我需要创建文件并写入文件的部分。 如果有人能在我需要写入新文件的部分告诉我我做错了什么,我将不胜感激。 这是我重新制作的代码:

    package com.readtxtfile;
import java.io.*;
import java.util.Scanner;

public class Main {
    private static String inputFilePath;
    private static String  textToGet;
    private static void readInputFile()
    {
        String line1 = null;

        Scanner input1 = new Scanner(System.in);
        System.out.println("Insert the input file path:");
        inputFilePath = input1.nextLine();


        try {
            FileReader readInput = new FileReader(inputFilePath+".txt");
            BufferedReader bufferedInput = new BufferedReader(readInput);
            line1 = bufferedInput.readLine();
            if (line1 != null)
                System.out.println("FILE LOADED SUCCESFULLY");

            bufferedInput.close();

        } catch (FileNotFoundException ex) {
            System.out.println(
                    "Unable to open file '" + inputFilePath + "'");
        } catch (IOException ex) {
            System.out.println(
                    "Error reading file '" + inputFilePath + "'");
        }
    }
    private static void textSearch()
    {
        Scanner input2 = new Scanner(System.in);
        System.out.println("Insert the text you want to extract:");
        textToGet = input2.nextLine();
    }
    private static void writeOutputFile()
    {

        Scanner input3 = new Scanner(System.in);
        System.out.println("Insert the output file path:");
        String outputFilePath = input3.nextLine();
            Scanner input4 = new Scanner(inputFilePath);

            int lineNumber = 0;
            while (input4.hasNextLine()) {
                String line2 = input4.nextLine();
                lineNumber++;
                if(textToGet.equals(line2))
                {
                    File output_file = new File(outputFilePath +".txt");
                    FileWriter writeOutput = null;
                    BufferedWriter bufferedInput = new BufferedWriter(writeOutput);
                    try {
                        writeOutput = new FileWriter(output_file +".txt");
                        writeOutput.write(line2);
                    } catch (IOException e)
                    {
                        e.printStackTrace();
                    }

                }
                }
            }
    public static void main(String[] args)
    {
     readInputFile();
     textSearch();
     writeOutputFile();
    }
}