作者:mobiledu2502929297 | 来源:互联网 | 2023-09-17 10:56
目录1Java中maven的使用2log4jlog4j的介绍log4j提供的几种方法使用步骤3输入流与输出流数据的读写程序以及map的使用这张图为我给自己研究所人讲网络爬虫的一个
目录
1Java中maven的使用 2log4j 3输入流与输出流
这张图为我给自己研究所人讲网络爬虫的一个流程,本人也将按照这个流程来讲网络爬虫,如果你的基础较好,可以直接跳过相关流程。
1、Java中maven的使用 使用maven能很轻松的从网络中下载所需的插件 及依赖(下载程序所依赖的JAR包),存储在某一位置中,在程序编译时自动去寻找jar包。初次使用maven时,可能会很慢,会遇到很多问题(国外的源,下载jar包很慢)可以配置一些国内的源,如csdn的。 maven的jar包搜索地址地址:http://mvnrepository.com/,可以通过这个地址搜索自己需要的相关jar包。
使用maven最大的方面,在ecliplse中建工程的时候,我们选择maven工程。如下图所示,maven工程上面会有一个M的标致,同时生成一个pom.xml文件,通过在pom.xml中加入以下类型的文件,便可把jar包引入到Maven Dependencies中。
<dependency > <groupId > org.jsoupgroupId ><artifactId > jsoupartifactId ><version > 1.8.2version >dependency >
我们可以在http://mvnrepository.com/网站中搜索自己需要的相关jar包后&#xff0c;将其复制到pom.xml中即可。如下图所示
2、log4j log4j的介绍 log4j是Apache下的一个开源项目&#xff0c;用来控制日志信息&#xff0c;方便的日志记录。之所以要记录日志&#xff0c;可以详细的记录程序发生了什么&#xff0c;在哪里发生的&#xff0c;有没有错误等。在使用log4j之前需要使用maven引入log4j的jar包。 其中&#xff0c;日志的输出级别&#xff08;%p &#xff09;&#xff1a;DEBUG&#xff0c;INFO&#xff0c;WARN&#xff0c;ERROR&#xff0c;FATAL(每个严重的错误事件将会导致应用程序的退出)
log4j提供的几种方法 (1)Appender方法&#xff1a;日志输出目的地 org.apache.log4j.ConsoleAppender&#xff08;控制台&#xff09;&#xff0c;org.apache.log4j.FileAppender&#xff08;文件&#xff09;&#xff0c;org.apache.log4j.DailyRollingFileAppender&#xff08;每天产生一个日志文件&#xff09;&#xff0c;org.apache.log4j.RollingFileAppender&#xff08;文件大小到达指定尺寸的时候产生一个新的文件&#xff09;&#xff0c;org.apache.log4j.WriterAppender&#xff08;将日志信息以流格式发送到任意指定的地方&#xff09;。 (2)Layout方法&#xff1a;日志输出格式 org.apache.log4j.HTMLLayout&#xff08;以HTML表格形式布局&#xff09;&#xff0c;org.apache.log4j.PatternLayout&#xff08;可以灵活地指定布局模式&#xff09;&#xff0c;org.apache.log4j.SimpleLayout&#xff08;包含日志信息的级别和信息字符串&#xff09;&#xff0c;org.apache.log4j.TTCCLayout&#xff08;包含日志产生的时间、线程、类别等等信息&#xff09;。
使用步骤 (1)导入log4j-1.2.8.jar包&#xff08;我们使用maven&#xff09;。 (2)在根目录src下建立并配置log4j.properties&#xff0c;如下图所示为我的配置。 (3)使用&#xff08;演示&#xff09;&#xff0c;如下图所示。 logger.debug(“This is debug.”); logger.info(“This is an info.”); logger.warn(“This is a warning.”); logger.error(“This is an error.”); logger.fatal(“This is a fatal error.”);
3、输入流与输出流 这里也不做很多介绍&#xff0c;简单一点&#xff0c;输入流、输出流就是文件的读与写&#xff0c;当然这样理解比较狭隘。详细的&#xff0c;大家可以看http://blog.csdn.net/liuxiaogangqq/article/details/25892667。这篇博客&#xff0c;总结的很全面&#xff0c;值得学习。 &#xff08;1&#xff09;读取文件&#xff08;输入流read()&#xff09;、写文件(输出流write()) &#xff08;2&#xff09;文件字节流&#xff1a;FileInputStream&#xff08;&#xff09;、 FileOutputStream&#xff08;&#xff09; &#xff08;3&#xff09;文件字符流&#xff1a; FileReader()、FileWriter () &#xff08;4&#xff09;缓冲流&#xff08;读写能力强&#xff0c;最常用&#xff09;&#xff1a;BufferedReader&#xff08;&#xff09;、BufferedWriter&#xff08;&#xff09; 注意&#xff1a;缓冲流的源必须是字节流或者字符流 案列&#xff1a;
数据的读写程序以及map的使用 package FileUtil;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.FileReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;public class FileTest {static final Log logger &#61; LogFactory.getLog(FileTest.class);public static void main (String[] args) throws IOException {/****** 读入的数据存入list<>中******/ List Data&#61;new ArrayList();/****** 创建所要读的文本******/ File file &#61; new File("E:\\钱洋个人\\网络爬虫培训\\attentionword.txt" );/****** FileReader顺序读取文件*****/ FileReader fileReader &#61; new FileReader(file);/****** 根据FileReader创建的实例******/ BufferedReader bufferedReader &#61;new BufferedReader(fileReader);String s&#61;null ;while ((s&#61;bufferedReader.readLine())!&#61;null ) {Data.add(s);logger.info(s);}bufferedReader.close();fileReader.close();/****** 文件读取第二种方式 ******/ BufferedReader reader &#61; new BufferedReader( new InputStreamReader( new FileInputStream( new File( "E:\\钱洋个人\\网络爬虫培训\\b.txt" )),"utf-8" ));String s1&#61;null ;while ((s1&#61;reader.readLine())!&#61;null ) {Data.add(s1);logger.info(s1);}reader.close();/****** 文件写入第一种方式 ******/ /****** 文件写入快捷方式******/ BufferedWriter writer &#61; new BufferedWriter( new OutputStreamWriter( new FileOutputStream( new File("D:\\钱洋个人\\网络爬虫培训\\d.txt" )),"utf-8" ));/****** map的使用 ******/ Map map&#61;new HashMap();/****** map添加数据 ******/ for (String data : Data){map.put(Integer.parseInt(data.split("\\s" )[0 ]), data.substring(1 ,data.length()));}/****** map遍历数据 ******/ for ( Integer key : map.keySet() ){System.out.println("key:" &#43;key&#43;"\tvalue:" &#43;map.get(key));writer.append("key:" &#43;key&#43;"\tvalue:" &#43;map.get(key)&#43;"\r\n" );}writer.close();} }