你可以将所有图片的名字放在一个数组中,然后循环该数组,在循环中调用转换图片的方法:
String[] names={"1.jpg","2.jpg","3.jpg"}for(String name:names)handle(name)
假如说你的文件名的命名有一定的规律,就像上面的数组一样,就可以直接循环,然后在循环体中自己生成文件名:
for(int i=1i<=40i++){name=i+".jpg"
handle(name)
}
我马上写一个给你。package com.zeal.card// 这里是我自己临时用的包名,你自己改一下就好了
import java.io.BufferedReader
import java.io.File
import java.io.FileInputStream
import java.io.InputStreamReader
public class Demo {
/**
* 主方法
* @param args
*/
public static void main(String[] args) {
printData()
}
/**
* 读取TXT文档第一行数据中的第3位到第9位,并输出到控制台
*/
public static void printData() {
// 定义文本文件数组,这里是临时演示用,请自己改写
String[] txtFiles = {
"c:/a.txt",
"c:/b.txt",
"c:/c.txt",
}
// 遍历文件
for (int i=0i<txtFiles.lengthi++) {
try {
// 得到文件
File file = new File(txtFiles[i])
// 如果文件存在
if (file.exists()) {
// 建立缓冲包装器
BufferedReader in = null
in = new BufferedReader(new InputStreamReader(new FileInputStream(file)))
// 读出一行(因为只是读一行,没必要遍历全部文件内容)
String temp = in.readLine()
// 如果不为空,并且长度至少为9
if (temp != null) {
if (temp.length() >=9) {
String txt = temp.substring(2, 9)
System.out.println("取出数据:" + txt)
}
}
}
} catch (Exception e) {
e.printStackTrace()
}
}
}
}
PS:代码是死的,人是活的,上面代码只是纯粹为了实现你说的功能做的一个演示,写的不好,应该将变量写在循环之外的,我没考虑那么多,反正只是读取一行。如果你需要多次用到这个功能,建议你将其封装为一个方法,给一个文件名或者File类型的文件作为参数,返回值就是你要读取的第3到9位,这样可以重复使用。
写好的,你自己看着作一点修改就行import java.io.*
import java.sql.*
public class RenameFile
{
File parentFile
public RenameFile(File parentFile)
{
this.parentFile = parentFile
readDataBase(parentFile.list())
}
private void readDataBase(String[] list)//这个函数里读数据库的方式可能跟你的不一样,自己看着改改
{
for(String oldName:list)
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")
Connection conn = DriverManager.getConnection("jdbc:odbc:DSN","","")//DSN是数据源名字
Statement st = conn.createStatement()
ResultSet rs = st.executeQuery("Select * from TABLENAME where FILENAME = "+oldName)//TABLENAME是数据库里表的名字,FILENAME是表示文件名的字段的名字
while (rs.next())
{
String newName = rs.getString("NUMBER")//NUMBER是表示学号的字段,getString要根据你定义的数据类型作改动为getInt或其他
rename(oldName,newName)
}
}
catch (Exception e)
{
e.printStackTrace()
}
}
}
private void rename(String oldName, String newName)
{
try
{
File source = new File(parentFile.toString()+"\\"+oldName)
File target = new File(source.getParent()+"\\"+newName)
boolean res = source.renameTo(target)
}
catch (Exception e)
{
e.printStackTrace()
}
}
public static void main(String [] args)
{
String path = "path"//这里把path改成文件夹的路径
File file = new File(path)
new RenameFile(file)
}
}
_______________________________
for(String oldName:list)
这个是java 5.0以后才出现的新语法,也是一种循环,这个循环的次数是list的元素个数,用oldName作为临时变量,指代list中的每一个元素。
当然你也可以这样写:
for(int i=0, i<list.length(), i++)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)