java批量处理
public class FileNameTest {
/**
* 修改文件名称
* @param file
*/
public static void changeFileName(File file){
File[] files = file.listFiles();//遍历文件夹下的所有文件
//因为你这文件夹下全是文件,所以这里没用递归
for (int i = 0; i < files.length; i++) {
File f = files[i];//获取文件
String fileName = f.getName();//获取文件名称
fileName = fileName.replace("韩顺平.循序渐进学.java.从入门到精通.", "");//你这里文件名有规律,所以我这里直接用replace方法来替换原来的文件名
f.renameTo(new File("D:\\Program Files\\视频\\"+fileName));//这里就是修改后的新文件名
}
}
/**
* main函数
* @param args
*/
public static void main(String[] args){
File file = new File("D:\\Program Files\\视频");
changeFileName(file);
}
}
Ⅱ java 如何批量修改一张表里面多条数据的某个字段的值,需要修改的字段值是自定义的。
直接数据库操作嘛 全部改一样的就用update dealers set buynum where 。。
不一样的话就存储结构吧。
用java更新 最好用批处理PreparedStatement stamt.. "update ??????"
for(){ stamt.addBatch(); }
stamt.executeBatch();
Ⅲ JAVA如何实现数据库的批处理操作
批量数据进入数据库使用addBatch()和executeBatch()方法
PreparedStatement.addBatch(); ...... PreparedStatement.executeBatch();需要注意的是一次最多不要超过50条:1.因为插入的时候数据库已经锁定,然而若是一次性插入太多会造成其他业务的等待。2.会造成内存的溢出
举例:
PreparedStatement pst = (PreparedStatement) con.prepareStatement("insert into ***** values (?,'***')"); for (int i = 0; i < 10000; i++) { pst.setInt(1, i); // 把一个sql命令加入命令列表 pst.addBatch(); } // 执行批量更新 pst.executeBatch(); // 语句执行完毕,提交本事务 con.commit();
Ⅳ java编程 批处理
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Stack;
public class CheckFilebatch {
private static final String LOG_FILE = "F:/CheckFilebatch.log"; //报错的信息写在这个文件里。
private static final String FILE_HOME = "F:/niceStore /"; //要操作的物理目录
public static void main(String[] args) {
try {
ArrayList<String> fileListInDB = new ArrayList<String>();
FileWriter fw = new FileWriter(LOG_FILE);
// TODO
// 取得DB连接,执行sql“SELECT DISTINCT FILEPATH FROM ARR-FILE”,得到一个ResultSet
// 从DB中取出文件信息,放入fileListInDB 中,
ResultSet rs = null;
while (rs.next()) {
String path = rs.getString("File_Column");
File f = new File(path);
if (!f.exists()) {
// 不合法的报出错误信息。
System.out.println("file not exists: " + path);
fw.write("file not exists: " + path + "\n");
} else {
// 合法的,转化为路径名的规范路径名字符串,加入到fileListInDB中
fileListInDB.add(f.getCanonicalPath());
}
}
rs.close();
//
fw.write("\n\n\n\n");
//下面开始遍历物理目录
File home = new File(FILE_HOME);
Stack<File> tmpStack = new Stack<File>();
tmpStack.add(home);
while (!tmpStack.isEmpty()) {
File tmp = tmpStack.pop();
File[] childs = tmp.listFiles();
for (int i = 0; i < childs.length; i++) {
File child = childs[i];
if (child.isDirectory()) {
tmpStack.push(child);
} else {
if (fileListInDB.contains(child.getCanonicalPath())) {
fileListInDB.remove(child.getCanonicalPath());
} else {
// 删除文件。
child.delete();
// 这里的操作如果把它移动到另一个目录里,作为备份,更好些。
fw.write("delete file: " + child.getCanonicalPath());
}
}
}
}
// 这个程序只考虑文件,不考虑目录
fw.close();
} catch (SQLException e) {
e.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
Ⅳ 如何把java中的项目做成批处理
这是我一个真实的项目。发布批处理程序,结构目录如下:
data文件存放数据,etc存放配置文件,lib,存放项目jar包,startup.bat/startup.sh启动脚本。
1、-----windows上.bat文件调用java程序。bat文件内容如下------
echooff
remsetupclasspath
echoset_CP=%%_CP%%;%%1>cp.bat
set_CP=.;classes;"%JAVA_HOME%libdt.jar";"%JAVA_HOME%lib ools.jar"
for%%iin(lib*.jar)docallcp.bat%%i
setCLASSPATH=%_CP%
delcp.bat
echo%CLASSPATH%
remsetJAVA_HOME=
setJAVA_OPTION=-Dfile.encoding=GBK-Xms256m-Xmx256m-XX:MaxPermSize=64m
setRUN_CLASS=batch.Main
"%JAVA_HOME%injava"%JAVA_OPTION%-classpath%CLASSPATH%%RUN_CLASS%
2、-------unix/linux上shell调用java程序,shello文件内容如下---------
if[-z${JAVA_HOME}]
then
echo"JAVA_HOMEnotsetyet,can'trunjavaprogram!"
exit-1
fi
CLASSPATH=.:${JAVA_HOME}/lib/tools.jar:${JAVA_HOME}/lib/dt.jar
JLIBDIR=./lib
exportJLIBDIR
forLLin`ls${JLIBDIR}/*.jar`
do
CLASSPATH=${CLASSPATH}:${LL}
done
echo${CLASSPATH}
exportCLASSPATH
JAVA_OPTION="-Dfile.encoding=GBK-Xms256m-Xmx256m-XX:MaxPermSize=64m"
RUN_CLASS=batch.Main
${JAVA_HOME}/bin/java${JAVA_OPTION}-classpath${CLASSPATH}${RUN_CLASS}
Ⅵ 请教Java处理大批量的数据
首先看是什么文件?txt?还是xml?
如果是txt的话我们直接通过IO将其中的内容看做一个字符串,接着去找个正则表达式匹配(如果楼主正则表达式不错的话)一下那么很快就可以得出你想要的结果了。
如果xml的话则遍历用户节点然后找到相应的 userId的节点下的商品id的节点。
其实还有个方法就是通过spilte方法将它分成数组。。。然后遍历数组来得到想要的结果。。。正则表达式如果写出来应该是最快的,比较符合楼主的要求。。。
Ⅶ JAVA如何批量处理从数据库提取出的数据
总得有个分隔符号,如,也行。
从第1个字符开始,直接分隔符号,再处理前面得到的资料
Ⅷ 怎么批量修改java文件的编码
工具:
eclipse
方法:
1、打开eclipse主页面,点击【windows】菜单,然后选择【Reference】选项。
Ⅸ Java中怎样实现批量删除操作
Java中实现批量删除操作的方法如下:
示例代码如下:
public PreparedStatement pstmt=null;
/**
* 得到连接对象
*/
public void getConnection(){
String driver="com.mysql.jdbc.Driver";
String url="jdbc:mysql://localhost:3306/zufang?user=root&password=root&useUnicode=true&characterEncoding=GB2312";
try {
Class.forName(driver);
con=DriverManager.getConnection(url,"root","root");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
public Connection con=null;
public PreparedStatement pstmt=null;
/**
* 得到连接对象
*/
public void getConnection(){
String driver="com.mysql.jdbc.Driver";
String url="jdbc:mysql://localhost:3306/zufang?user=root&password=root&useUnicode=true&characterEncoding=GB2312";
try {
Class.forName(driver);
con=DriverManager.getConnection(url,"root","root");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
/ * 批量删除信息表中的信息
* @param sql
* @param param
* @return
*/
public boolean updateBatchDel(String sql,String[] param){
boolean flag = false;
getConnection();
try {
con.setAutoCommit(false);
pstmt = con.prepareStatement(sql);
for(int i =0 ;i<param.length;i++){
pstmt.setString(1,param[i].trim());
pstmt.addBatch();
}
pstmt.executeBatch(); //批量执行
con.commit();//提交事务
flag = true;
} catch (SQLException e) {
try {
con.rollback(); //进行事务回滚
} catch (SQLException ex) {
ex.printStackTrace();
}
}finally {
closeAll(null,pstmt,con);
}
return flag;
}
/**
* 批量删除信息表中的信息
* @param sql
* @param param
* @return
*/
public boolean updateBatchDel(String sql,String[] param){
boolean flag = false;
getConnection();
try {
con.setAutoCommit(false);
pstmt = con.prepareStatement(sql);
for(int i =0 ;i<param.length;i++){
pstmt.setString(1,param[i].trim());
pstmt.addBatch();
}
pstmt.executeBatch(); //批量执行
con.commit();//提交事务
flag = true;
} catch (SQLException e) {
try {
con.rollback(); //进行事务回滚
} catch (SQLException ex) {
ex.printStackTrace();
}
}finally {
closeAll(null,pstmt,con);
}
return flag;
}
删除后同步提交就可以了。
Ⅹ Java中怎么批量处理实例变量
例如设置一个实例变量
son 1=new son(1,",毛毛");
son 2=new son(2,",小明");
.
.
.
son 20=new son(20,"老王");
然后您的代码(最好是用数组和循环语句)。
最后输出
1,毛毛
2,小明
.
.
.
20,老王