自己编写的一个程序:读取XML格式的日志文件,并以一定的数据写入数据库中
2007-01-15 16:16
951 查看
【1】程序说明:下面对用到的一个java类进行一番说明。
NorthKing.java 这个是程序的入口类
XMLtoDB.java 这个是处理从XML写入数据库的类
AnalysisXml.java 这个是分析XML文件的类
WorkLog.java 这个是XML日志文件的JavaBean类
DBConnection.java 这个是数据连接代码类
【2】详细程序说明:对每个类给出具体代码,共大家参考。
NorthKing.java
package src.net.nk.tc;
public class NorthKing {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
XMLtoDB xmltodb = new XMLtoDB();
xmltodb.doXMLtoDB_Worklog();
xmltodb.doXMLtoDB_Ipaddress();
}
}
XMLtoDB.java
package src.net.nk.tc;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.StringTokenizer;
import java.util.regex.*;
public class XMLtoDB {
private DBConnection dbc;
private AnalysisXml AX;
private WorkLog wl;
private Connection xmlcon;
private Statement st;
public XMLtoDB()
{
dbc = new DBConnection();
dbc.getProperties();
xmlcon = dbc.getConnection();
AX = new AnalysisXml();
AX.XmlData("/worklog.xml");
wl = new WorkLog();
}
public void doXMLtoDB_Worklog()//写入数据到WORKLOG表中
{
try {
st = xmlcon.createStatement();
for(int i=0;i<AX.xmlVector.size();i++)
{
wl = (WorkLog)AX.xmlVector.get(i);
xmlcon.setAutoCommit(false);
st.executeUpdate("insert into WORKLOG values('"+wl.getCode()+"','"+wl.getName()+"','"+wl.getLog()+"')");
xmlcon.commit();
/* String temp = wl.getCode()+" | "+wl.getName()+" | "+wl.getLog();
System.out.println(temp);*/
}
} catch (Exception e) {
// TODO Auto-generated catch block
try {
xmlcon.rollback();
if(st!=null)
st.close();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
e.printStackTrace();
}
}
public void doXMLtoDB_Ipaddress()//写入数据到IPADDRESS表中
{
try {
st = xmlcon.createStatement();
for(int i=0;i<AX.xmlVector.size();i++)
{
wl = (WorkLog)AX.xmlVector.get(i);
String[] ipstring = findAllIP(wl.getLog()).split(" ");
//StringTokenizer stn = new StringTokenizer(findAllIP(wl.getLog())," ");
xmlcon.setAutoCommit(false);
for(int j=0;j<ipstring.length;j++)
{
st.executeUpdate("insert into IPADDRESS values('"+wl.getCode()+"','"+ipstring[j]+"')");
}
/*while(stn.hasMoreTokens())
{
System.out.println(stn.nextToken());
st.executeUpdate("insert into IPADDRESS values('"+wl.getCode()+"','"+stn.nextToken()+"')");
}*/
xmlcon.commit();
}
} catch (Exception e) {
try {
xmlcon.rollback();
if(st!=null)
st.close();
} catch (SQLException e1) {
e1.printStackTrace();
}
e.printStackTrace();
}
}
public String findAllIP(String src) {//对一行读取所有ip,并存在返回的String中,以空格分隔
String ippattern = "[//d]{0,3}//.[//d]{0,3}//.[//d]{0,3}//.[//d]{0,3}";
String timepattern = "[//d]{4}//.[//d]{2}//.[//d]{2}//.[//d]{2}//.[//d]{2}";
String temp = "";
StringBuffer sb = new StringBuffer();
sb.append(src);
Matcher timematcher = Pattern.compile(timepattern).matcher(src);
while (timematcher.find()) {
temp = timematcher.group(0);
int j = sb.indexOf(temp);
if (j >= 0) {
for (int x = 0; x < 16; x++) {
sb.deleteCharAt(j);
}
}
}
src = sb.toString();
Matcher ipmather = Pattern.compile(ippattern).matcher(src);
StringBuffer result = new StringBuffer();
while (ipmather.find()) {
result.append(ipmather.group(0) + " ");
}
// System.out.println(result);
return result.toString();
}
}
AnalysisXml.java
package src.net.nk.tc;
import java.io.*;
import java.util.*;
import org.jdom.*;
import org.jdom.output.*;
import org.jdom.input.*;
public class AnalysisXml {
public Vector xmlVector = null;
public List XmlData(String path)
{
xmlVector = new Vector();
InputStream fi = null;
try{
fi = getClass().getResourceAsStream(path);
xmlVector = new Vector();
SAXBuilder sb = new SAXBuilder();
Document doc = sb.build(fi);
Element root = doc.getRootElement(); //得到根元素
List logs = root.getChildren(); //得到根元素所有子元素的集合
Element log =null;
WorkLog xml =null;
for(int index=0;index<logs.size();index++)
{
xml = new WorkLog();
log = (Element)logs.get(index);
xml.setCode(log.getAttributeValue("code"));
xml.setName(log.getAttributeValue("name"));
xml.setLog(log.getValue());
xmlVector.add(xml);
}
}
catch(Exception x)
{
System.out.println(x.toString());
}
finally{
try{
fi.close();
}
catch(Exception e){
e.printStackTrace();
}
}
return xmlVector;
}
}
WorkLog.java
package src.net.nk.tc;
public class WorkLog {
private String code;
private String name;
private String log;
public String getCode()
{
return this.code;
}
public String getName()
{
return this.name;
}
public String getLog()
{
return this.log;
}
public void setCode(String pra)
{
this.code = pra;
}
public void setName(String pra)
{
this.name = pra;
}
public void setLog(String pra)
{
this.log = pra;
}
}
DBConnection.java
package src.net.nk.tc;
bb5d
import java.sql.*;
import java.util.*;
import java.io.*;
public class DBConnection {
private Properties ps;
private String Driver=null;
private String Url=null;
private String Username=null;
private String Password=null;
private Connection con=null;
public void getProperties()
{
ps = new Properties();
InputStream is = getClass().getResourceAsStream("/dbconnect.properties");
try{
ps.load(is);
}
catch(Exception e)
{
System.out.println(e.toString());
}
Driver = ps.getProperty("DBDriver");
Url = ps.getProperty("DBUrl");
Username = ps.getProperty("DBUserName");
Password = ps.getProperty("DBUserPwd");
}
public Connection getConnection()
{
try {
Class.forName(this.Driver);
con = DriverManager.getConnection(this.Url,this.Username,this.Password);
return con;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return con;
}
}
}
【3】相关的(配置)文件
dbconnect.properties 数据库连接配置文件
worklog.xml 日志文件
详细如下所示:
【dbconnec.properties】
# MySql #
#DBDriver=com.mysql.jdbc.Driver
#DBUrl=jdbc:mysql://192.168.0.66/TEST
#DBUserName=root
#DBUserPwd=password
#com.borland.datastore.jdbc.DataStoreDriver#
#DBDriver=com.borland.datastore.jdbc.DataStoreDriver
#DBUrl=jdbc:borland:dslocal:northking.jds
#DBUserName=northking
#DBUserPwd=northking
# Oracle #
#DBDriver=oracle.jdbc.driver.OracleDriver
#DBUrl=jdbc:oracle:thin:@192.168.0.66:1521:TEST
#DBUserName=sys
#DBUserPwd=password
#
# SQL¡¡Server #
#DBDriver=com.microsoft.jdbc.sqlserver.SQLServerDriver
#DBUrl=jdbc:microsoft:sqlserver://192.168.0.66:1433;databaseName=TEST
#DBUserName=sa
#DBUserPwd=password
#
# Sybase #
#DBDriver=com.sybase.jdbc2.jdbc.SybDriver
#DBUrl=jdbc:sybase:Tds:192.168.0.66:2638?ServiceName=TEST
#DBUserName=sa
#DBUserPwd=password
#
# DB2 #
#DBDriver=com.ibm.db2.jdbc.net.DB2Driver
#DBUrl=jdbc:db2://192.168.0.66:6789/TEST
#DBUserName=db2inst1
#DBUserPwd=password
#
# Informix #
#DBDriver=com.informix.jdbc.IfxDriver
#DBUrl=jdbc:informix-sqli://123.45.67.89:1533/myDB:INFORMIXSERVER=myserver
#DBUserName=db2inst1
#DBUserPwd=password
#
# Access #
DBDriver=sun.jdbc.odbc.JdbcOdbcDriver
DBUrl=jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=C://data.mdb
DBUserName=admin
DBUserPwd=password
#
----------------------------------------
【worklog.xml】
<?xml version="1.0" encoding="UTF-8"?>
<work_logs>
<log code="100000101" name="张网">1900.01.01.01.01在148.74.77.198.关闭web应用4.194.208.181.修复数据库12.106.220.202.备份数据库95.245.222.14.调试日志242.93.134.196.修改log14.151.120.76.修改界面</log>
<log code="100000102" name="刘络">1900.01.02.01.01在67.71.212.210.备份数据库150.251.232.58.调试日志</log>
<log code="100000103" name="陈庭管">1900.01.03.01.01在62.136.27.255.修改界面172.4.147.26.分配任务26.204.73.12.强行结束本程序75.97.77.242.OCR识别启动250.102.71.41.打开第一批量42.165.105.105.打开扫描程序182.83.161.53.扫描会计档案47.149.21.117.质量检查231.67.200.97.打开计算机</log>
<log code="100000104" name="杨理">1900.01.04.01.01在161.160.109.25.没有任何动作143.177.233.213.拷贝资料6.139.234.110.设置管理员权限173.128.131.118.启动游戏90.103.69.14.编写文档62.250.16.100.开发程序93.125.40.121.关闭服务66.160.138.40.关闭计算机239.167.129.100.关闭web应用27.200.117.192.修复数据库152.212.5.54.备份数据库19.27.85.33.调试日志0.137.168.139.修改log211.21.49.173.修改界面116.91.38.180.分配任务237.135.23.193.强行结束本程序102.118.126.53.OCR识别启动84.24.150.43.打开第一批量237.25.113.70.打开扫描程序222.191.70.172.扫描会计档案65.23.8.82.质量检查</log>
<log code="100000105" name="赵外">1900.01.05.01.01在60.123.65.87.没有任何动作11.123.53.220.拷贝资料150.193.237.84.设置管理员权限138.21.162.105.启动游戏245.29.235.158.编写文档89.38.122.56.开发程序253.33.7.88.关闭服务140.235.137.104.关闭计算机216.211.171.184.关闭web应用254.87.126.105.修复数据库177.46.108.139.备份数据库208.138.109.130.调试日志58.158.125.174.修改log226.94.77.75.修改界面38.135.57.149.分配任务93.223.122.49.强行结束本程序</log>
<log code="100000106" name="黄其包">1900.01.06.01.01在157.199.41.206.修改log52.244.17.16.修改界面202.97.118.30.分配任务</log>
<log code="100000107" name="周性">1900.01.07.01.01在12.182.136.143.启动服务55.119.190.192.启动工作流</log>
<log code="100000108" name="吴质">1900.01.08.01.01在190.23.162.182.启动游戏4.110.103.70.编写文档251.205.178.106.开发程序187.71.91.111.关闭服务241.31.165.89.关闭计算机27.47.20.110.关闭web应用245.138.126.248.修复数据库56.97.101.72.备份数据库128.35.132.246.调试日志142.232.168.112.修改log177.16.193.179.修改界面127.40.57.83.分配任务200.13.132.193.强行结束本程序204.83.248.205.OCR识别启动172.231.223.106.打开第一批量31.243.203.178.打开扫描程序102.4.43.42.扫描会计档案</log>
</work_logs>
PS:程序的结构 大家自己可以分析 我就不分析了 请朋友们一起分享
NorthKing.java 这个是程序的入口类
XMLtoDB.java 这个是处理从XML写入数据库的类
AnalysisXml.java 这个是分析XML文件的类
WorkLog.java 这个是XML日志文件的JavaBean类
DBConnection.java 这个是数据连接代码类
【2】详细程序说明:对每个类给出具体代码,共大家参考。
NorthKing.java
package src.net.nk.tc;
public class NorthKing {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
XMLtoDB xmltodb = new XMLtoDB();
xmltodb.doXMLtoDB_Worklog();
xmltodb.doXMLtoDB_Ipaddress();
}
}
XMLtoDB.java
package src.net.nk.tc;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.StringTokenizer;
import java.util.regex.*;
public class XMLtoDB {
private DBConnection dbc;
private AnalysisXml AX;
private WorkLog wl;
private Connection xmlcon;
private Statement st;
public XMLtoDB()
{
dbc = new DBConnection();
dbc.getProperties();
xmlcon = dbc.getConnection();
AX = new AnalysisXml();
AX.XmlData("/worklog.xml");
wl = new WorkLog();
}
public void doXMLtoDB_Worklog()//写入数据到WORKLOG表中
{
try {
st = xmlcon.createStatement();
for(int i=0;i<AX.xmlVector.size();i++)
{
wl = (WorkLog)AX.xmlVector.get(i);
xmlcon.setAutoCommit(false);
st.executeUpdate("insert into WORKLOG values('"+wl.getCode()+"','"+wl.getName()+"','"+wl.getLog()+"')");
xmlcon.commit();
/* String temp = wl.getCode()+" | "+wl.getName()+" | "+wl.getLog();
System.out.println(temp);*/
}
} catch (Exception e) {
// TODO Auto-generated catch block
try {
xmlcon.rollback();
if(st!=null)
st.close();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
e.printStackTrace();
}
}
public void doXMLtoDB_Ipaddress()//写入数据到IPADDRESS表中
{
try {
st = xmlcon.createStatement();
for(int i=0;i<AX.xmlVector.size();i++)
{
wl = (WorkLog)AX.xmlVector.get(i);
String[] ipstring = findAllIP(wl.getLog()).split(" ");
//StringTokenizer stn = new StringTokenizer(findAllIP(wl.getLog())," ");
xmlcon.setAutoCommit(false);
for(int j=0;j<ipstring.length;j++)
{
st.executeUpdate("insert into IPADDRESS values('"+wl.getCode()+"','"+ipstring[j]+"')");
}
/*while(stn.hasMoreTokens())
{
System.out.println(stn.nextToken());
st.executeUpdate("insert into IPADDRESS values('"+wl.getCode()+"','"+stn.nextToken()+"')");
}*/
xmlcon.commit();
}
} catch (Exception e) {
try {
xmlcon.rollback();
if(st!=null)
st.close();
} catch (SQLException e1) {
e1.printStackTrace();
}
e.printStackTrace();
}
}
public String findAllIP(String src) {//对一行读取所有ip,并存在返回的String中,以空格分隔
String ippattern = "[//d]{0,3}//.[//d]{0,3}//.[//d]{0,3}//.[//d]{0,3}";
String timepattern = "[//d]{4}//.[//d]{2}//.[//d]{2}//.[//d]{2}//.[//d]{2}";
String temp = "";
StringBuffer sb = new StringBuffer();
sb.append(src);
Matcher timematcher = Pattern.compile(timepattern).matcher(src);
while (timematcher.find()) {
temp = timematcher.group(0);
int j = sb.indexOf(temp);
if (j >= 0) {
for (int x = 0; x < 16; x++) {
sb.deleteCharAt(j);
}
}
}
src = sb.toString();
Matcher ipmather = Pattern.compile(ippattern).matcher(src);
StringBuffer result = new StringBuffer();
while (ipmather.find()) {
result.append(ipmather.group(0) + " ");
}
// System.out.println(result);
return result.toString();
}
}
AnalysisXml.java
package src.net.nk.tc;
import java.io.*;
import java.util.*;
import org.jdom.*;
import org.jdom.output.*;
import org.jdom.input.*;
public class AnalysisXml {
public Vector xmlVector = null;
public List XmlData(String path)
{
xmlVector = new Vector();
InputStream fi = null;
try{
fi = getClass().getResourceAsStream(path);
xmlVector = new Vector();
SAXBuilder sb = new SAXBuilder();
Document doc = sb.build(fi);
Element root = doc.getRootElement(); //得到根元素
List logs = root.getChildren(); //得到根元素所有子元素的集合
Element log =null;
WorkLog xml =null;
for(int index=0;index<logs.size();index++)
{
xml = new WorkLog();
log = (Element)logs.get(index);
xml.setCode(log.getAttributeValue("code"));
xml.setName(log.getAttributeValue("name"));
xml.setLog(log.getValue());
xmlVector.add(xml);
}
}
catch(Exception x)
{
System.out.println(x.toString());
}
finally{
try{
fi.close();
}
catch(Exception e){
e.printStackTrace();
}
}
return xmlVector;
}
}
WorkLog.java
package src.net.nk.tc;
public class WorkLog {
private String code;
private String name;
private String log;
public String getCode()
{
return this.code;
}
public String getName()
{
return this.name;
}
public String getLog()
{
return this.log;
}
public void setCode(String pra)
{
this.code = pra;
}
public void setName(String pra)
{
this.name = pra;
}
public void setLog(String pra)
{
this.log = pra;
}
}
DBConnection.java
package src.net.nk.tc;
bb5d
import java.sql.*;
import java.util.*;
import java.io.*;
public class DBConnection {
private Properties ps;
private String Driver=null;
private String Url=null;
private String Username=null;
private String Password=null;
private Connection con=null;
public void getProperties()
{
ps = new Properties();
InputStream is = getClass().getResourceAsStream("/dbconnect.properties");
try{
ps.load(is);
}
catch(Exception e)
{
System.out.println(e.toString());
}
Driver = ps.getProperty("DBDriver");
Url = ps.getProperty("DBUrl");
Username = ps.getProperty("DBUserName");
Password = ps.getProperty("DBUserPwd");
}
public Connection getConnection()
{
try {
Class.forName(this.Driver);
con = DriverManager.getConnection(this.Url,this.Username,this.Password);
return con;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return con;
}
}
}
【3】相关的(配置)文件
dbconnect.properties 数据库连接配置文件
worklog.xml 日志文件
详细如下所示:
【dbconnec.properties】
# MySql #
#DBDriver=com.mysql.jdbc.Driver
#DBUrl=jdbc:mysql://192.168.0.66/TEST
#DBUserName=root
#DBUserPwd=password
#com.borland.datastore.jdbc.DataStoreDriver#
#DBDriver=com.borland.datastore.jdbc.DataStoreDriver
#DBUrl=jdbc:borland:dslocal:northking.jds
#DBUserName=northking
#DBUserPwd=northking
# Oracle #
#DBDriver=oracle.jdbc.driver.OracleDriver
#DBUrl=jdbc:oracle:thin:@192.168.0.66:1521:TEST
#DBUserName=sys
#DBUserPwd=password
#
# SQL¡¡Server #
#DBDriver=com.microsoft.jdbc.sqlserver.SQLServerDriver
#DBUrl=jdbc:microsoft:sqlserver://192.168.0.66:1433;databaseName=TEST
#DBUserName=sa
#DBUserPwd=password
#
# Sybase #
#DBDriver=com.sybase.jdbc2.jdbc.SybDriver
#DBUrl=jdbc:sybase:Tds:192.168.0.66:2638?ServiceName=TEST
#DBUserName=sa
#DBUserPwd=password
#
# DB2 #
#DBDriver=com.ibm.db2.jdbc.net.DB2Driver
#DBUrl=jdbc:db2://192.168.0.66:6789/TEST
#DBUserName=db2inst1
#DBUserPwd=password
#
# Informix #
#DBDriver=com.informix.jdbc.IfxDriver
#DBUrl=jdbc:informix-sqli://123.45.67.89:1533/myDB:INFORMIXSERVER=myserver
#DBUserName=db2inst1
#DBUserPwd=password
#
# Access #
DBDriver=sun.jdbc.odbc.JdbcOdbcDriver
DBUrl=jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=C://data.mdb
DBUserName=admin
DBUserPwd=password
#
----------------------------------------
【worklog.xml】
<?xml version="1.0" encoding="UTF-8"?>
<work_logs>
<log code="100000101" name="张网">1900.01.01.01.01在148.74.77.198.关闭web应用4.194.208.181.修复数据库12.106.220.202.备份数据库95.245.222.14.调试日志242.93.134.196.修改log14.151.120.76.修改界面</log>
<log code="100000102" name="刘络">1900.01.02.01.01在67.71.212.210.备份数据库150.251.232.58.调试日志</log>
<log code="100000103" name="陈庭管">1900.01.03.01.01在62.136.27.255.修改界面172.4.147.26.分配任务26.204.73.12.强行结束本程序75.97.77.242.OCR识别启动250.102.71.41.打开第一批量42.165.105.105.打开扫描程序182.83.161.53.扫描会计档案47.149.21.117.质量检查231.67.200.97.打开计算机</log>
<log code="100000104" name="杨理">1900.01.04.01.01在161.160.109.25.没有任何动作143.177.233.213.拷贝资料6.139.234.110.设置管理员权限173.128.131.118.启动游戏90.103.69.14.编写文档62.250.16.100.开发程序93.125.40.121.关闭服务66.160.138.40.关闭计算机239.167.129.100.关闭web应用27.200.117.192.修复数据库152.212.5.54.备份数据库19.27.85.33.调试日志0.137.168.139.修改log211.21.49.173.修改界面116.91.38.180.分配任务237.135.23.193.强行结束本程序102.118.126.53.OCR识别启动84.24.150.43.打开第一批量237.25.113.70.打开扫描程序222.191.70.172.扫描会计档案65.23.8.82.质量检查</log>
<log code="100000105" name="赵外">1900.01.05.01.01在60.123.65.87.没有任何动作11.123.53.220.拷贝资料150.193.237.84.设置管理员权限138.21.162.105.启动游戏245.29.235.158.编写文档89.38.122.56.开发程序253.33.7.88.关闭服务140.235.137.104.关闭计算机216.211.171.184.关闭web应用254.87.126.105.修复数据库177.46.108.139.备份数据库208.138.109.130.调试日志58.158.125.174.修改log226.94.77.75.修改界面38.135.57.149.分配任务93.223.122.49.强行结束本程序</log>
<log code="100000106" name="黄其包">1900.01.06.01.01在157.199.41.206.修改log52.244.17.16.修改界面202.97.118.30.分配任务</log>
<log code="100000107" name="周性">1900.01.07.01.01在12.182.136.143.启动服务55.119.190.192.启动工作流</log>
<log code="100000108" name="吴质">1900.01.08.01.01在190.23.162.182.启动游戏4.110.103.70.编写文档251.205.178.106.开发程序187.71.91.111.关闭服务241.31.165.89.关闭计算机27.47.20.110.关闭web应用245.138.126.248.修复数据库56.97.101.72.备份数据库128.35.132.246.调试日志142.232.168.112.修改log177.16.193.179.修改界面127.40.57.83.分配任务200.13.132.193.强行结束本程序204.83.248.205.OCR识别启动172.231.223.106.打开第一批量31.243.203.178.打开扫描程序102.4.43.42.扫描会计档案</log>
</work_logs>
PS:程序的结构 大家自己可以分析 我就不分析了 请朋友们一起分享
相关文章推荐
- 扔掉log4j、log4j2,自己动手实现一个多功能日志记录框架,包含文件,数据库日志写入,实测5W+/秒日志文件写入,2W+/秒数据库日志写入,虽然它现在还没有logback那么强大
- vc2008: 控制台程序将数据写入MySql(数据库信息从配置文件读取)
- C语言创建一个文件,写入数据并换行,再依次读取每行的数据,将读取的行数据以一定的格式命名为另一文件的文件名
- 使用write函数来编写一个程序,在程序中指定一个文件,用户可以向程序中一次写入不超过80个字符的数
- 一个简单的从txt文件中读取数据插入数据库
- 将oracle中blob数据写入文件,再把文件读取插入数据库
- 编写一个Java程序将当100,101,102,103,104,105个数以数组的形式写入到Dest.txt文件中,并以相反的顺序读出显示在屏幕上
- 有一个数据文件:123 34 17 651234 345….这些数据都是随机产生的,编写程序读出该文件.并将其以从大到小的顺序输出到另一个文件中.
- 自己在看一些android教学视频后,整理的一个文件读取和写入类
- 编写一个对文件按字节写入的程序floppyWrite.exe
- 一个AJAX列子,通过读取后台数据库数据转换为xml格式进行输出
- QX项目实战-3.读取数据、数据写入数据库、读出数据生成新文件
- 将文本文件中的数据读取到一个二维数组中,求出这些数据的中位数,然后求所有数据与中位数的差值的绝对值和,并求出和的最小值,最后把程序运行的结果写到一个txt文件中
- java读取数据写入txt文件并将读取txt文件写入另外一个表
- 现在我要写一个定时程序定时读取该目录下的所有txt文件到数据库,并把这些txt文件转移到另外一个目录
- 插入数据读取数据库写入到Text文件保存
- Python从数据库读取大量数据批量写入文件
- 从一个文件中读取数据到内存,然后再把内存中的数据写入另外一个文件
- 编写一个程序,使其从标准输入读取字符,直到遇到文件结尾。对美个字符 程序需要检查并报告改字符是否是一个字母。如果是报告字母在字符表中的位置,否则返回-1
- 编写一个程序,从标准输入一行一行地读取文本,并完成如下任务:如果文件中有两行或更多行相邻的文本内容相同,那么就打印其中一行,其余行不打印。