将文件操作重定向到java中的日志文件

时间:2018-01-18 09:26:23

标签: java

我正在编写简单的Java代码来获取具有16条记录的文件,每条记录将以逗号分隔6个字段。

我正在编写代码将其重定向到我正在创建的新日志文件,但日志文件生成为空。以下是我的代码。

try 
{
    String s = "";
    FileReader f  = new FileReader ("C:\\file.txt");
    File log_file = new File ("C:\\file_log.txt");
    BufferedReader sr = new BufferedReader(f);
    while((s = sr.readLine()) != null)
    {    
        PrintStream p = new PrintStream(log_file);
        PrintStream console = System.out;
        System.setOut(p);
    }
}
catch(FileNotFoundException e)
{
    System.out.println("check file is present in location");
}

2 个答案:

答案 0 :(得分:0)

在你的代码上没有任何东西写在log_file上。

试试这个:

    System.out.println("----------------");
    try {
        String s = "";
        FileReader f = new FileReader("input.txt");
        File Log_file = new File("log.txt");
        BufferedReader sr = new BufferedReader(f);
        PrintStream p = new PrintStream(Log_file);
        while ((s = sr.readLine()) != null) {
            // write to log
            p.println(s);
            // write to console
            System.out.println(s);
        }
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    System.out.println("----------------");

答案 1 :(得分:0)

这有效:

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.PrintStream;

public class FileLog {

    public static void main(String[] args) throws Exception {
        System.setOut(new PrintStream(new File("output.txt")));

        BufferedReader br = new BufferedReader(new FileReader("input.txt"));
        String s;
        while ((s = br.readLine()) != null) {
            System.out.println(s);
        }
    }
}

在项目根目录中放入一个名为“input.txt”的文件,其中包含一些文本行,然后运行代码。