今天在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输出。
分享到:
相关推荐
System.out.println("文件创立成功,可以写入"); } bw = new BufferedWriter(new FileWriter(newFile, true)); // 追加模式写入 bw.write(totalString, 0, totalString.length()); bw.flush(); // 刷新缓冲区 ...
System.out.println("新建文件操作出错"); e.printStackTrace(); } } ``` **注意点:** 1. **文件存在性检查**:创建前检查文件是否存在。 2. **异常类型**:创建文件可能会抛出`IOException`。 #### 五、删除...
System.out.println("内容写入成功"); } catch (Exception e) { System.out.println("创建文件出错"); e.printStackTrace(); } } ``` #### 五、删除文件 删除文件可以通过调用`java.io.File`类的`delete()`...
System.out.println("文件的最后修改日期为:" + new Date(f.lastModified())); } ``` 这段代码展示了如何获取文件名、大小、类型、读写权限以及最后修改时间等信息。 总的来说,Java提供的文件操作API非常强大,...
System.out.println("文件可以写入:" + file.canWrite()); System.out.println("文件上级路径:" + file.getParent()); System.out.println("文件大小:" + file.length() + "B"); System.out.println("文件最后...
System.out.println("文件写入成功!"); } catch (IOException e) { e.printStackTrace(); } } } ``` 以上内容涵盖了Java文件操作的基础知识点,通过理解并掌握这些概念,你可以轻松地完成日常开发中的文件...
在Java编程语言中,文件操作是一项基础且至关重要的任务,涉及到读取、写入、创建、删除、重命名等操作。`java.io.File`类是Java标准库中的核心类,用于处理磁盘上的文件和目录。这个类不仅提供了对文件的基本操作,...
然而,Java提供了一种机制,允许我们重定向`System.out`的输出流,使其同时或分别写入文件和控制台。 1. **创建PrintStream对象** 首先,我们可以创建一个`PrintStream`对象,用于向文件写入数据。例如,如果我们...
Java 中的文件操作是一项重要的技能,通过文件操作,我们可以读取和写入文件,创建、删除和重命名文件,以及在文件中查找和修改数据。本文将详细介绍 Java 中的文件操作,包括文件的读取和写入,文件的创建和删除,...
System.out.println("文件存在:" + file.exists()); System.out.println("是文件:" + file.isFile()); System.out.println("是目录:" + file.isDirectory()); System.out.println("名称:" + file.getName()); ...
用于实现java的modbus,具体资料可以参考官网 ... System.out.println(ModbusClient.ConvertRegistersToFloat(modbusClient.ReadHoldingRegisters(11, 2))); } catch (Exception e) { } } }
在Java中,处理文件和I/O操作主要是通过`java.io`包来实现的。这个包提供了大量的类和接口,用于实现基本的文件输入/输出操作,如读取文件、写入文件、创建文件或目录等。这些功能对于开发基于文件的应用程序非常...
除了上述基本的写入方式,还可以使用`newLine()`方法在内容之间添加换行符,或者使用`append()`方法在文件已有内容的基础上追加新的内容。例如: ```java bufferedWriter.newLine(); // 添加一行 bufferedWriter....
* System.out.println():System.out.println()是JAVA语言中的一种输出语句,能够将数据输出到控制台中。 实现方法:首先,建立了一个InputStreamReader对象ir,用于将控制台的输入数据转换为字符流。然后,建立了...
在计算机科学中,二进制文件是由一系列字节组成的文件,这些字节可以表示任何类型的数据,包括文本、图像、音频等。二进制文件与文本文件的主要区别在于其存储方式。文本文件通常以字符编码的形式存储数据,而二进制...
System.out.println("内容写入成功"); } else { System.out.println("文件创建失败"); } } else { System.out.println("文件已存在"); } } catch (Exception e) { System.out.println("新建文件操作出错");...
System.out.println("九九乘法表写入文件成功 ..."); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { fos.close()...
System.out.println("无法写入文件" + ioe.getMessage()); } ``` **知识点:** - **RandomAccessFile:** 支持随机访问文件的类。 - **seek 方法:** 移动文件指针位置。 - **writeByte 方法:** 写入单个字节。 ...