`
ayuayufan
  • 浏览: 29011 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

在文件中写入System.out.println的内容

阅读更多

今天在coding过程中遇到了这么一件事,在J2SE程序中引入的另一个jar包的日志用的既不是log4j,也不是slf4j,而是奇怪的System.out.println。可是我想把他打印出来的信息记录到我的log文件里面,怎么办呢?于是查看API发现,System这个类可以自己指定out输出流,于是乎,下面的代码就出现了。

PrintStream p = new PrintStream(new BufferedOutputStream(new FileOutputStream("D:\\log.txt")));
System.setOut(p);
System.out.println("here we r");
p.close();

似乎可以用。

再来优化一下:

public class Test implements Runnable{
	
	public void run(){
		int i=0;
		while(true){
			System.out.println(i++);
			try {
				Thread.sleep(1000L);
			} catch (InterruptedException e) {
				
			}
		}
	}
	
	public static void main(String[] ag) throws Exception {
		PrintStream p = new PrintStream(new BufferedOutputStream(new FileOutputStream("D:\\log.txt")));
		System.setOut(p);
		new Thread(new Test()).start();//another thread test, instead of the other jar service
		try{
			while(true){
				System.out.flush();
				try {
					Thread.sleep(5000L);
				} catch (InterruptedException e) {
				
				}
			}
		}catch(Exception e){
			
		}finally{
			p.close();
		}
	}
}

 这样,每5秒钟,会将输出流中的数据保存到文件一次,不管是当前线程的out输出,还是其他线程的out输出。

分享到:
评论
1 楼 iaimstar 2009-05-19  
有点意思,你的文章很有趣

相关推荐

    JAVA中如何用线程读取一个文件里的数据.doc

    System.out.println("文件创立成功,可以写入"); } bw = new BufferedWriter(new FileWriter(newFile, true)); // 追加模式写入 bw.write(totalString, 0, totalString.length()); bw.flush(); // 刷新缓冲区 ...

    java创建和删除文件夹、文件.doc

    System.out.println("新建文件操作出错"); e.printStackTrace(); } } ``` **注意点:** 1. **文件存在性检查**:创建前检查文件是否存在。 2. **异常类型**:创建文件可能会抛出`IOException`。 #### 五、删除...

    java 文件以及文件夹操作代码

    System.out.println("内容写入成功"); } catch (Exception e) { System.out.println("创建文件出错"); e.printStackTrace(); } } ``` #### 五、删除文件 删除文件可以通过调用`java.io.File`类的`delete()`...

    Java文件的输入输出流实例详解

    System.out.println("文件可以写入:" + file.canWrite()); System.out.println("文件上级路径:" + file.getParent()); System.out.println("文件大小:" + file.length() + "B"); System.out.println("文件最后...

    java文件操作(超详细!).pdf

    System.out.println("文件写入成功!"); } catch (IOException e) { e.printStackTrace(); } } } ``` 以上内容涵盖了Java文件操作的基础知识点,通过理解并掌握这些概念,你可以轻松地完成日常开发中的文件...

    java file 文件操作例子

    在Java编程语言中,文件操作是一项基础且至关重要的任务,涉及到读取、写入、创建、删除、重命名等操作。`java.io.File`类是Java标准库中的核心类,用于处理磁盘上的文件和目录。这个类不仅提供了对文件的基本操作,...

    将Java System.out定向到文件和控制台的快速简便方法

    然而,Java提供了一种机制,允许我们重定向`System.out`的输出流,使其同时或分别写入文件和控制台。 1. **创建PrintStream对象** 首先,我们可以创建一个`PrintStream`对象,用于向文件写入数据。例如,如果我们...

    java文件操作(讲述了java对文件的使用)

    System.out.println("文件的最后修改日期为:" + new Date(f.lastModified())); } ``` 这段代码展示了如何获取文件名、大小、类型、读写权限以及最后修改时间等信息。 总的来说,Java提供的文件操作API非常强大,...

    Java基础知识:文件操作

    Java 中的文件操作是一项重要的技能,通过文件操作,我们可以读取和写入文件,创建、删除和重命名文件,以及在文件中查找和修改数据。本文将详细介绍 Java 中的文件操作,包括文件的读取和写入,文件的创建和删除,...

    java入门之io包

    System.out.println("文件存在:" + file.exists()); System.out.println("是文件:" + file.isFile()); System.out.println("是目录:" + file.isDirectory()); System.out.println("名称:" + file.getName()); ...

    EasyModbusJava.jar

    用于实现java的modbus,具体资料可以参考官网 ... System.out.println(ModbusClient.ConvertRegistersToFloat(modbusClient.ReadHoldingRegisters(11, 2))); } catch (Exception e) { } } }

    c++文件操作详解

    在Java中,处理文件和I/O操作主要是通过`java.io`包来实现的。这个包提供了大量的类和接口,用于实现基本的文件输入/输出操作,如读取文件、写入文件、创建文件或目录等。这些功能对于开发基于文件的应用程序非常...

    用java实现的创建文件及写入内容

    除了上述基本的写入方式,还可以使用`newLine()`方法在内容之间添加换行符,或者使用`append()`方法在文件已有内容的基础上追加新的内容。例如: ```java bufferedWriter.newLine(); // 添加一行 bufferedWriter....

    JAVA练习题(第8-9-10章)(ppt文档).ppt

    * System.out.println():System.out.println()是JAVA语言中的一种输出语句,能够将数据输出到控制台中。 实现方法:首先,建立了一个InputStreamReader对象ir,用于将控制台的输入数据转换为字符流。然后,建立了...

    java读取二进制文件

    在计算机科学中,二进制文件是由一系列字节组成的文件,这些字节可以表示任何类型的数据,包括文本、图像、音频等。二进制文件与文本文件的主要区别在于其存储方式。文本文件通常以字符编码的形式存储数据,而二进制...

    java文件操作大全

    System.out.println("内容写入成功"); } else { System.out.println("文件创建失败"); } } else { System.out.println("文件已存在"); } } catch (Exception e) { System.out.println("新建文件操作出错");...

    FileOutputStream将乘法口诀表写入指定文件

    System.out.println("九九乘法表写入文件成功 ..."); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { fos.close()...

    java文件操作代码

    System.out.println("无法写入文件" + ioe.getMessage()); } ``` **知识点:** - **RandomAccessFile:** 支持随机访问文件的类。 - **seek 方法:** 移动文件指针位置。 - **writeByte 方法:** 写入单个字节。 ...

Global site tag (gtag.js) - Google Analytics