`

java读写本地日志文件

    博客分类:
  • J2SE
 
阅读更多

package mytools;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
/**
 * 这是一个与日志读写有关的类,定义了一些通用的方法
 * @author Devon
 *
 */
public class LogsReaderWriter {
    
    /**
     *
     * @param filePath        文件路径的字符串表示形式
     * @param KeyWords        查找包含某个关键字的信息:非null为带关键字查询;null为全文显示
     * @return         当文件存在时,返回字符串;当文件不存在时,返回null
     */
    public static String readFromFile(String filePath, String KeyWords){
        StringBuffer stringBuffer = null;
        File file = new File(filePath);
        if(file.exists()){
            stringBuffer = new StringBuffer();
            FileReader fileReader = null;
            BufferedReader bufferedReader = null;
            String temp = "";
            try {
                fileReader = new FileReader(file);
                bufferedReader = new BufferedReader(fileReader);
                while((temp = bufferedReader.readLine()) != null){
                    if(KeyWords ==null){
                        stringBuffer.append(temp + "\n");
                    }else{
                        if(temp.contains(KeyWords)){
                            stringBuffer.append(temp + "\n");
                        }
                    }
                }
            } catch (FileNotFoundException e) {
                //e.printStackTrace();
            } catch (IOException e) {
                //e.printStackTrace();
            }finally{
                try {
                    fileReader.close();
                } catch (IOException e) {
                    //e.printStackTrace();
                }
                try {
                    bufferedReader.close();
                } catch (IOException e) {
                    //e.printStackTrace();
                }
            }
        }
        if(stringBuffer == null){
            return null;
        }else{
            return stringBuffer.toString();
        }
        
        
    }
    
    /**
     * 将指定字符串写入文件。如果给定的文件路径不存在,将新建文件后写入。
     * @param log        要写入文件的字符串
     * @param filePath        文件路径的字符串表示形式,目录的层次分隔可以是“/”也可以是“\\”
     * @param isAppend        true:追加到文件的末尾;false:以覆盖原文件的方式写入
     */            
    
    public static boolean writeIntoFile(String log, String filePath, boolean isAppend){
        boolean isSuccess = true;
        //如有则将"\\"转为"/",没有则不产生任何变化
        String filePathTurn = filePath.replaceAll("\\\\", "/");
        //先过滤掉文件名
        int index = filePath.lastIndexOf("/");
        String dir = filePath.substring(0, index);
        //创建除文件的路径
        File fileDir = new File(dir);
        fileDir.mkdirs();
        //再创建路径下的文件
        File file = null;
        try {
            file = new File(filePath);
            file.createNewFile();
        } catch (IOException e) {
            isSuccess = false;
            //e.printStackTrace();
        }
        //将logs写入文件
        FileWriter fileWriter = null;
        try {
            fileWriter = new FileWriter(file, isAppend);
            fileWriter.write(log);
            fileWriter.flush();
        } catch (IOException e) {
            isSuccess = false;
            //e.printStackTrace();
        } finally{
            try {
                fileWriter.close();
            } catch (IOException e) {
                //e.printStackTrace();
            }
        }
        
        return isSuccess;
    }
    /**
     * 创建文件,如果该文件已存在将不再创建(即不起任何作用)
     * @param filePath         要创建文件的路径的字符串表示形式,目录的层次分隔可以是“/”也可以是“\\”
     * @return         创建成功将返回true;创建不成功则返回false
     */
    public static boolean createNewFile(String filePath){
        boolean isSuccess = true;
        //如有则将"\\"转为"/",没有则不产生任何变化
        String filePathTurn = filePath.replaceAll("\\\\", "/");
        //先过滤掉文件名
        int index = filePathTurn.lastIndexOf("/");
        String dir = filePathTurn.substring(0, index);
        //再创建文件夹
        File fileDir = new File(dir);
        isSuccess = fileDir.mkdirs();
        //创建文件
        File file = new File(filePathTurn);
        try {
            isSuccess = file.createNewFile();
        } catch (IOException e) {
            isSuccess = false;
            //e.printStackTrace();
        }

        return isSuccess;
    }
}

分享到:
评论

相关推荐

    java如何读取文件

    在Java编程语言中,读取文件是一项常见的操作,尤其是在处理数据、日志文件或配置信息时。本文将详细解析如何使用Java读取文本文件,基于提供的代码示例,深入探讨其工作原理及最佳实践。 ### Java读取文本文件的...

    java从读取本地文件的指定行数

    在Java中,读取本地文件是一项非常常见的操作,尤其是在处理日志文件、配置文件等场景时。本文将详细介绍如何利用Java来读取本地文件,并针对特定行数进行提取。 #### 核心知识点解析 1. **文件读取基础** - 使用...

    用java编程将txt文件数据导入oracle

    在本程序中,我们使用 Java 语言的 BufferedReader 类来读取 TXT 文件中的数据。 3. Oracle 数据库:Oracle 数据库是一种关系数据库管理系统,广泛应用于企业软件开发、数据分析等领域。在本程序中,我们使用 Java ...

    java中调用本地exe文件

    本文将详细介绍如何在Java中调用本地exe文件,并解析提供的代码示例。 ### 一、Java中调用本地exe文件的基本原理 #### 1.1 调用本地exe文件的方式 在Java中,可以通过`java.lang.Runtime`类或者`java.lang....

    java 读取Ftp指定位置的文件解析并入库

    标题 "java 读取Ftp指定位置的文件解析并入库" 涉及到的是使用Java编程语言通过FTP(File Transfer Protocol)协议从远程服务器上下载文件,然后对下载的文件进行解析,并将解析得到的数据存储到数据库中。...

    java文件上传,断点续传+aop操作日志

    "java文件上传,断点续传+aop操作日志"这个主题涵盖了几个关键知识点:文件上传、断点续传技术、AOP(面向切面编程)以及操作日志记录。 1. **文件上传**: 文件上传是指用户通过Web页面将本地文件传输到服务器的...

    Java版钉钉群定时发消息(读取本地txt)

    总结来说,实现Java版钉钉群定时发消息(读取本地txt)需要以下步骤: 1. 创建钉钉群机器人并获取Webhook地址。 2. 使用Java HTTP客户端发起POST请求,发送消息到Webhook。 3. 设计定时任务,如使用`...

    自己开发的Windows日志获取源码

    JNA允许我们调用Windows API函数,如ReadEventLog,从而读取和解析日志文件。 在设计程序时,首先需要定义一个接口,声明Windows API中的相关函数,如OpenEventLog、ReadEventLog等。然后,通过JNA的Library类加载...

    Java FTP 指定下载文件和上传文件到指定的服务器目录

    ### Java FTP 指定下载文件和上传文件到指定的服务器目录 #### 一、概述 在本篇文章中,我们将详细介绍如何使用Java编程语言通过FTP(文件传输协议)实现文件的上传与下载功能,并能够将文件指定上传或下载到特定...

    java 读取本地文件实例详解

    在Java编程中,读取本地文件是常见的任务,无论是在处理配置文件、日志记录还是数据存储时。这里我们将深入探讨两种不同的方法来实现这一功能,即使用`javax.xml`和`dom4j`库进行XML文件的读取。 1. 使用`javax.xml...

    Java调用本地的远程桌面连接

    这个方法允许我们在Java程序中执行任何可执行文件或命令行脚本。例如,我们可以构造一个包含用户名、密码和目标计算机地址的RDP连接字符串,然后用`mstsc.exe`命令行参数来启动远程桌面连接。 以下是一个简单的示例...

    java与c++传文件程序

    这个项目提供了一个基础的Java-C++文件传输框架,开发者可以根据自身需求进行扩展,例如增加日志记录、传输进度显示等功能,以满足更复杂的应用场景。对于学习和理解网络编程、Socket通信以及跨平台文件传输的人来说...

    Android JNI 用C函数写本地库读写文件,底层调用小例子

    这个小例子展示了如何使用JNI和C语言来创建一个本地库,用于执行文件的读写操作,从而实现底层的高效控制。下面将详细阐述Android JNI、C语言在Android中的应用以及如何实现文件的读写。 首先,我们需要了解JNI的...

    java连接opc读取数据

    最近由于项目需要,在已有java web工程里添加读取opc的接口类。通过接口将opc数据读取到本地存于oracle数据库中,供本管理系统趋势分析用。本实例在win7、xp系统本地均已调通。压缩包里有本人写的每一步详细说明操作...

    Java文件同步程序

    2. **文件传输**:文件的传输通常采用TCP/IP协议,通过Socket建立连接,然后利用输入输出流读取和写入文件内容。为了提高效率,可以使用断点续传技术,避免因网络问题导致的文件传输中断。 3. **冲突解决**:在多台...

    在app中读取本地的txt文本的Android demo

    在Android开发中,读取本地的txt文本是一个常见的需求,比如用于显示用户协议、日志记录或者游戏剧情等。这个“在app中读取本地的txt文本的Android demo”就是一个典型的示例,它展示了如何根据用户操作(点击不同的...

    java实现文件保存到本地的方法

    在Java编程中,将文件保存到本地是常见的操作,尤其在处理上传文件或下载数据时。本篇文章将详细介绍如何使用Java实现这一功能。主要涉及的知识点包括文件操作、输入/输出流以及异常处理。 首先,我们要了解Java中...

    Android-AndroidLog日志打印输出到文件方便查看和上传到服务器

    3. **文件格式化**:为了方便查看,日志文件可能被格式化为易读的文本,每条日志包括时间戳、级别、标签和消息内容。 4. **文件上传功能**:应用可能包含一个接口,允许用户触发日志文件的上传操作,这些文件可以...

    Android 保存并导出本地日志demo

    这段代码创建了一个`ACTION_SEND`意图,设置其类型为文本,然后添加了本地日志文件的URI作为共享数据。最后,通过`Intent.createChooser`显示一个分享对话框,让用户选择他们想要使用的应用来发送日志文件。 为了使...

    java文件上传源码

    文件读写操作是文件上传的另一部分,Java提供了一系列的类如`java.io.File`、`java.io.FileInputStream`、`java.io.FileOutputStream`等来处理文件的创建、读取和写入。一旦Servlet获取到上传的文件流,它会创建一个...

Global site tag (gtag.js) - Google Analytics