java中如何实现文件的批量读取与写入

在写一个java程序,来实现图像格式的转换。现在图片从1编写到了40.但是程序目前只能一次转换一张图片,在下一次转换的时候我得手动更改文件名。想请教一下应该如何去设计批处... 在写一个java程序,来实现图像格式的转换。
现在图片从1编写到了40.
但是程序目前只能一次转换一张图片,在下一次转换的时候我得手动更改文件名。
想请教一下应该如何去设计批处理的环节?循环应该怎么设计呢?
提供思路或者伪代码就行。
BTW:这样子可以吗?
public static void main(String[] args) {
File a = new File("F:\\a.txt");
File b = new File("F:\\b.txt");
a.renameTo(b);
}
展开
 我来答
mzocean
2013-07-05 · TA获得超过1083个赞
知道小有建树答主
回答量:492
采纳率:33%
帮助的人:470万
展开全部

你可以将所有图片的名字放在一个数组中,然后循环该数组,在循环中调用转换图片的方法:

String[] names={"1.jpg","2.jpg","3.jpg"};
for(String name:names)handle(name);

假如说你的文件名的命名有一定的规律,就像上面的数组一样,就可以直接循环,然后在循环体中自己生成文件名:

for(int i=1;i<=40;i++){
    name=i+".jpg";
    handle(name);    
}
java菜鸟人物
2013-07-04
知道答主
回答量:20
采纳率:0%
帮助的人:2.9万
展开全部
使用寻找后缀名方法 只要是txt结尾的后缀名都读取
追问
是说通配符么?
我尝试过通配符,但是没有成功。
追答
不是通配符 是一个方法 加载后缀名相同的文件 具体什么方法忘记了 在音乐播放器上用的挺多的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
似灵杉0Ey
2015-07-25 · TA获得超过313个赞
知道小有建树答主
回答量:341
采纳率:55%
帮助的人:145万
展开全部
  public class UserDataGather {
public static final String TXT_FILE_PATH = "D://testUser.txt";
public static final String openFileStyle = "r";
public static final String fieldLimitChar = ".";
public static final int fieldAllCount = 1;
public static final String default_password = "PTMD0309";
public Integer count = 0;
private String FltNum;
public String UUID;
/**
* 功能:解析文本文件
*/
public void loadFile() {
try {
RandomAccessFile raf = new RandomAccessFile(TXT_FILE_PATH, openFileStyle);
String line_record = raf.readLine();
while (line_record != null) {
// 解析每一条记录
parseRecord(line_record);
line_record = raf.readLine();
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 功能:具体解析每一条记录,这里可以增加很多对记录的解析判断条件,如是否为字母、
*/
@SuppressWarnings("static-access")
private void parseRecord(String line_record) throws Exception {
//拆分记录
// String[] fields = line_record.split(fieldLimitChar);
// System.out.println(tranStr(line_record)+"Ok");
String
temp = line_record.substring(line_record.indexOf(fieldLimitChar, 0),
line_record.indexOf(" ", line_record.indexOf(fieldLimitChar, 0)));
// if (fields.length == fieldAllCount) {
//
FltNum = tranStr(temp).trim().replace(fieldLimitChar,"").replace(" ","");
// System.out.println(FltNum);
if(FltNum.length()>=4){
if(!isNumeric(FltNum)){
// System.out.println(generateSql(FltNum)[0].toString());
// System.out.println(generateSql(FltNum)[1].toString());
count++;
String[] temp1 = generateSql(FltNum);
MyFile mf = new MyFile();
mf.creatTxtFile("insertPinTuUserSql");
mf.writeTxtFile(temp1[0].toString());
mf.creatTxtFile("UUID");
mf.writeTxtFile(temp1[1].toString()+",");
}
}else if(FltNum.length() ==2 || FltNum.length() ==3){
if(!isNumeric(FltNum)){
if(!isTwoCharacter(FltNum)){
// System.out.println(generateSql(FltNum)[0].toString());
// System.out.println(generateSql(FltNum)[1].toString());
count++;
String[] temp2 = generateSql(FltNum);
MyFile mf = new MyFile();
mf.creatTxtFile("insertPinTuUserSql");
mf.writeTxtFile(temp2[0].toString());
mf.creatTxtFile("UUID");
mf.writeTxtFile(temp2[1].toString()+",");
}
}
}
// InsertDB db = new InsertDB();
//
// db.insertDB(FltNum);
// }
}
@SuppressWarnings("static-access")
public String[] generateSql(String userName) throws IOException{
StringBuffer sbf = new StringBuffer();
String[] str = new String[2];
String uuid = UUIDUtil.getUUID();
sbf.append("insert
into user values('"+uuid+"','" + userName
+"','"+default_password+"',"+Constants.ENABLED+","+Constants.NUllDELETE+","+Constants.AUDITING+",'"+uuid+"@164.com','"+formatDateTime()+"',"+Constants.REGEDIT_USER+");/n");
sbf.append("insert
into users values('"+uuid+"',"+
null+","+Constants.MALE+","+null+","+null+",'60.176.36.250','"+formatDateTime()+"',"+null+","+null+","+null+","+null+","+null+","+null+",0,"+null+","+null+",0,0,0,'"+formatDateTime()+"','1036',0,"+null+","+null+","+null+","+null+","+null+",'11',"+null+","+null+","+null+","+null+","+null+");/n");
sbf.append("insert into user_user_group values('"+uuid+"','"+ uuid +"','"+Constants.PERSONAL_USER+"');/n");
UUID = uuid;
str[0]=sbf.toString();
str[1]=UUID;
return str;
}
public String formatDateTime(){
Date date = new Date();
/**
* 时间格式化2009-12-31 09:04:31
*/
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(sdf.format(date));
return sdf.format(date);
}
private String tranStr(String oldstr) {
String newstr = "";
try {
newstr = new String(oldstr.getBytes("ISO-8859-1"), "utf-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return newstr;
}
public static boolean isNumeric(String str){
Pattern pattern = Pattern.compile("[0-9]*");
return pattern.matcher(str).matches();
}
public static boolean isTwoCharacter(String str){
String regEx="[a-zA-Z0-9]{2,3}";
Pattern p=Pattern.compile(regEx);
Matcher m=p.matcher(str);
return m.find();
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
vortexchoo
2015-08-06 · TA获得超过543个赞
知道小有建树答主
回答量:501
采纳率:40%
帮助的人:89万
展开全部
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class BatchCopy {
/**
* 缓冲区大小
*/
private static final Integer size = 1024;
/**
* 复制文件类型
*/
private static final String types = ".txt;.html";

/**
*
* @param originalPath 原文件路径
* @param newPath 复制目的路径
* @return true:成功; false:失败
*/
private static boolean copy(String originalPath,String newPath){
File file = new File(originalPath);
String fileName = file.getName();
String fileType = fileName.substring(fileName.lastIndexOf("."));
boolean flag = true;
if(types.indexOf(fileType)>-1){
FileInputStream fis = null;
FileOutputStream fos = null;
try {
fis = new FileInputStream(file);
byte[] b = new byte[size];
int i = 0;
File oFile = new File(newPath+fileName);
fos = new FileOutputStream(oFile);
if(!oFile.exists()){
oFile.createNewFile();
}
while((i=fis.read(b))!=-1){
fos.write(b);
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
flag = false;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
flag = false;
}finally{
try {
if(fis!=null){
fis.close();
}
if(fos!=null){
fos.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}else{
System.out.println("无匹配文件类型");
flag = false;
}
return flag;
}

/**
* 整个文件夹批量复制
* @param folderPath 文件夹路径
* @param newPath 目的路径
*/
public static void BatchCopyByFolder(String folderPath, String newPath) {
File[] files = new File(folderPath).listFiles();
if (files.length>0){
for(File file:files){
copy(folderPath+file.getName(),newPath);
}
}
}

/**
* 多文件路径复制
* @param filePaths 多文件路径(多个以 "," 隔开)
* @param newPath 目的路径
*/
public static void BatchCopyByPaths(String filePaths, String newPath) {
String[] paths = filePaths.split(",");
if(paths.length>0){
for(String path:paths){
if(path==null||!"".equals(path.trim())){
continue;
}
copy(path,newPath);
}
}
}

/**
*
* @param OriginalPath 文件所在路径
* @param fileNames 文件名(多个以 "," 隔开)
* @param newPath
*/
public static void BatchCopyByFileNames(String OriginalPath, String fileNames, String newPath) {
String[] names = fileNames.split(",");
if(names.length>0){
for(String name:names){
if(name==null||!"".equals(name.trim())){
continue;
}
String filePath = OriginalPath+name;
copy(filePath,newPath);
}
}
}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式