UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETF RFC 768是UDP的正式规范,本文代码采用了UDP协议的转发器。
Sitemap 可方便网站管理员通知搜索引擎他们网站上有哪些可供抓取的网页。最简单的 Sitemap 形式,就是XML 文件,在其中列出网站中的网址以及关于每个网址的其他元数据(上次更新的时间、更改的频率以及相对于网站上其他网址的重要程度为何等),以便搜索引擎可以更加智能地抓取网站。
XML标签,具体参数含义如下:changefreq:页面内容更新频率。
lastmod:页面最后修改时间
loc:页面永久链接地址
priority:相对于其他页面的优先权
url:相对于前4个标签的父标签
urlset:相对于前5个标签的父标签
废话不多说,JAVA 读写 sitemap.xml 文件具体代码如下:packagecom.yoodb;
importjava.io.BufferedReader;
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.FileNotFoundException;
importjava.io.FileOutputStream;
importjava.io.FileReader;
importjava.io.IOException;
importjava.io.InputStreamReader;
importjava.io.PrintWriter;
importjava.io.RandomAccessFile;
publicclassReadWriteFile{
privatestaticStringpath="E://sitemap.xml";
privatestaticFilefileName=newFile(path);
privatestaticStringreadStr="";
/**
*@
*创建文本文件
*@throwsIOException
*/
publicstaticBooleancreatTxtFile()throwsIOException{
if(!fileName.exists()){
fileName.createNewFile();
returntrue;
}else{
returnfalse;
}
}
/**
*@
*读取文本文件
*@throwsIOException
*/
publicstaticStringreadTxtFile(){
Stringread;
FileReaderfileread;
BufferedReaderbufread;
try{
fileread=newFileReader(fileName);
bufread=newBufferedReader(fileread);
try{
while((read=bufread.readLine())!=null){
readStr=readStr+read+"\r\n";
}
bufread.close();
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}catch(FileNotFoundExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
returnreadStr;
}
/**
*@
*将文件中指定内容的第一行替换为其它内容
*@paramoldStr查找内容
*@paramreplaceStr替换内容
*/
publicstaticvoidreplaceTxtByStr(StringoldStr,StringreplaceStr){
Stringtemp="";
try{
Filefile=newFile(path);
FileInputStreamfis=newFileInputStream(file);
InputStreamReaderisr=newInputStreamReader(fis);
BufferedReaderbr=newBufferedReader(isr);
StringBufferbuf=newStringBuffer();
//保存该行前面的内容
while((temp=br.readLine())!=null&&!temp.equals(oldStr)){
buf=buf.append(temp);
//System.getProperty("line.separator")平台下行与行之间的分隔符相当于""
buf=buf.append(System.getProperty("line.separator"));
}
buf=buf.append(replaceStr);
while((temp=br.readLine())!=null){
buf=buf.append(System.getProperty("line.separator"));
buf=buf.append(temp);
}
br.close();
FileOutputStreamfos=newFileOutputStream(file);
PrintWriterpw=newPrintWriter(fos);
pw.write(buf.toString().toCharArray());
pw.flush();
pw.close();
}catch(IOExceptione){
e.printStackTrace();
}
}
/**
*@
*读取本地文件内容并增加新内容文件
*@throwsIOException
*/
publicstaticvoidwriteTxtFile(StringnewStr){
Stringfilein=newStr+"\r\n"+readStr+"\r\n";
RandomAccessFilera=null;
try{
ra=newRandomAccessFile(fileName,"rw");
ra.write(filein.getBytes());
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}finally{
if(ra!=null){
try{
ra.close();
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
}
}
}
为了保留传入的数据,在 sitemap.xml 原文件内容基础上增加新的内容,具体代码如下:packagecom.yoodb;
publicclassTestMain{
publicstaticvoidmain(String[]args){
StringBufferbuf=newStringBuffer();
buf.append("\r\n");
buf.append("/yoodb/article/detail/224\r\n");
buf.append("0.5\r\n");
buf.append("-09-28\r\n");
buf.append("daily\r\n");
buf.append("\r\n");
ReadWriteFile.replaceTxtByStr("",buf.toString()+"");
}
}