1. 关于java批量读取文件,创建文件的问题。
FileOutputStream fos1=new FileOutputStream("目标目录\\1.txt");
FileOutputStream fos2=new FileOutputStream("目标目录\\2.txt");
FileOutputStream fos3=new FileOutputStream("目标目录\\3.txt");
//不需要去判断 文件是否存在 因为 new FileOutputStream("目标目录\\1.txt");默认是会覆盖源文件的
//如果new FileOutputStream("目标目录\\1.txt",true);则是在文件尾追加
// File file=new File("存放文件的目录");
File file=new File("存放文件的目录");
File[] files=file.listFiles();
for(File f:files){
FileInputStream fis=new FileInputStream(f);
byte[] b=new byte[fis.available()];
fis.read(b);
if(f.getName().charAt(0)=='1'){
fos1.write(b);
}else if(f.getName().charAt(0)=='2'){
fos2.write(b);
}else if(f.getName().charAt(0)=='3'){
fos3.write(b);
}
fis.close();
}
fos1.close();
fos2.close();
fos3.close();
2. java生成批量txt文件
Java生成批量txt文件,可以通过循环便利生成,示例如下:
response.setContentType(CONTENT_TYPE);
response.setHeader("Content-disposition","inline;filename=""+newString(fileName.getBytes("gb2312"),"ISO8859-1")+"";");
HashMapparas=newHashMap();
paras=(HashMap)model.get("paras");
//要导出的文件,其实是Json对象,通知我们要导出哪些表
Stringfiles=MapUtils.getString(paras,"file");
//解析成数组
String[]file=files.split(",");
//获取压缩包文件名
StringfileName=SysParaConfig.getProperty("fileName");
StringfileName=newString(fileName+".zip");
File[]files=newFile[file.length];
Stringpath=request.getRealPath("test/download");
//循环遍历生成文件
for(inti=0;i<file.length;i++){
Stringtable=file[i];
FiletoFile=newFile(path+"/"+table+".TXT");
if(!toFile.exists()){
toFile.createNewFile();
}
FileOutputStreamfos=newFileOutputStream(toFile);
StringBuffersbf=newStringBuffer();
//结果集,按一定规则(比如数据间隔符)查询表
StringresultSql="";
StringfieldSql="";
ListfileData=
jdbcTemplate.queryForList(fieldSql+"unionall"+resultSql);
intdataSize=fileData.size();
for(intj=0;j<dataSize;j++){
Stringresult=(String)fileData.get(j).get("data");
sbf.append(result);
if(j!=dataSize-1){
sbf.append(" ");
}
}
}
fos.write(strBuf.toString().getBytes("GBK"));
fos.flush();
fos.close();
}
3. Java 批量大文件上传下载如何实现
解决这种大文件上传不太可能用web上传的方式,只有自己开发插件或是当门客户端上传,或者用现有的ftp等。
1)开发一个web插件。用于上传文件。
2)开发一个FTP工具,不用web上传。
3)用现有的FTP工具。
下面是几款不错的插件,你可以试试:
1)Jquery的uploadify插件。具体使用。你可以看帮助文档。
4. java关于文件批量重命名的问题!
思路 :
看重性能的:新建一个文件 如txt文件 储存下一个该命名的文件名 如0151,然后结合加入文件数 自增 命名。
看重内存的,每次要命名之前,读取该目录下所有文件,识别最大的文件名,去除这个值,然后结合加入文件数 自增 命名。
5. java中如何实现文件的批量读取与写入
你可以将所有图片的名字放在一个数组中,然后循环该数组,在循环中调用转换图片的方法:
String[]names={"1.jpg","2.jpg","3.jpg"};
for(Stringname:names)handle(name);
假如说你的文件名的命名有一定的规律,就像上面的数组一样,就可以直接循环,然后在循环体中自己生成文件名:
for(inti=1;i<=40;i++){
name=i+".jpg";
handle(name);
}
6. 谁能说说java批量上传文件的原理,并且给个例子吧 谢了
刚学完多文件上传,希望对你有帮助。
多文件上传,就是把多个文件一起传到指定的位置,他和单文件上传类似,只需要改动几个地方而已即可。首先是上传页面,由于要上传多个文件,所以就必须有多个供用户选择的文件框,然后修改Action,把action中属性的类型修改为list。
action如下:
public class UploadActionMany extends ActionSupport{
private List<File> upload;
private List<String> uploadFileName;
public String execute() throws Exception {
// TODO Auto-generated method stub
System.out.print(upload.size());
if(upload!=null){
for (int i = 0; i < upload.size(); i++) {
InputStream is=new FileInputStream(upload.get(i)); OutputStream os=new FileOutputStream("d:\\upload\\"+getUploadFileName().get(i)); byte buffer[]=new byte[1024];
int count=0;
while((count=is.read(buffer))>0){
os.write(buffer,0,count);
}
os.close();
is.close();
}
}
return SUCCESS;
}
省略set和get方法
jsp如下:
<html>
<head>
<title>文件上传</title>
</head>
<body>
<s:form action="upload.action" method="post" enctype="multipart/form-data"> <s:file name="upload" label="上传的文件一"></s:file>
<s:file name="upload" label="上传的文件二"></s:file>
<s:file name="upload" label="上传的文件三"></s:file>
<s:submit value="上传"></s:submit>
</s:form>
</body>
</html>
希望对你有帮助,打代码不容易啊,记得给点分
7. java怎样按规定批量修改文件名
java批量修改文件名:
public static void main(String[] args) {
updateFileNames("D:\\jjjj", "第");
}
public static void updateFileNames(String url, String index){
File file = new File(url);
//判断文件目录是否存在,且是文件目录,非文件
if(file.exists() && file.isDirectory()){
File[] childFiles = file.listFiles();
String path = file.getAbsolutePath();
for(File childFile : childFiles){
//如果是文件
if(childFile.isFile()){
String oldName = childFile.getName();
String newName = oldName.substring(oldName.indexOf(index));
childFile.renameTo(new File(path + "\\" + newName));
}
}
}
}
8. 如何使用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);
}
}
9. java中如何实现文件的批量读取并提取部分内容写入一个新文件。 单一文件读取写入参照补充
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Testa
{
public static void main(String[] args)
{
//传入参数为文件目录
test("d:/a.txt");
}
public static void test(String filePath){
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader(filePath));
} catch (FileNotFoundException e) {
e.printStackTrace();
return;
}
String []columnName = {"Id", "Name", "Languages", "Math", "English"}; //列名
int []courseIndexs = {2, 3, 4}; //课程对应的列
int i,j,index;
String line;
List> students = new ArrayList>();
//记录Id和总值,用于排序
List> sortList = new ArrayList>();
try {
br.readLine(); //去掉第一行
while((line = br.readLine()) != null){
index = 0;
String []se = line.split(" ");
Map student = new HashMap();
for(i = 0; i < se.length; i++){
if("".equals(se[i])){
continue;
}
if(index >= columnName.length){
continue;
}
student.put(columnName[index], se[i]);
index++;
}
//计算平均值,总值
double total = 0;
for(j = 0; j < courseIndexs.length; j++){
total += Double.parseDouble((String) student.get(columnName[courseIndexs[j]]));
}
double average = total / courseIndexs.length;
//只取一位小数
average = Math.round(average * 10)/10;
student.put("Total", total);
student.put("Average", average);
Map sort = new HashMap();
sort.put("Id", student.get("Id"));
sort.put("Total", student.get("Total"));
sortList.add(sort);
students.add(student);
}
br.close();
//排序
for(i = 0; i < sortList.size(); i++){
for(j = i + 1; j < sortList.size(); j++){
if((Double)sortList.get(i).get("Total") < (Double)sortList.get(j).get("Total")){
Map temp = sortList.get(i);
sortList.set(i, sortList.get(j));
sortList.set(j, temp);
}
}
}
Map sortedId = new HashMap();
for(i = 0; i < sortList.size(); i++){
sortedId.put(sortList.get(i).get("Id"), i+1);
}
//设定序号
for(j = 0; j < students.size(); j++){
students.get(j).put("Order", sortedId.get(students.get(j).get("Id")));
}
//输出(写到原文件)
//PrintWriter pw = new PrintWriter(new File(filePath));
//输出(写到其他文件)
PrintWriter pw = new PrintWriter(new File("D:/b.txt"));
pw.println("Id\tName\tLan\tMath\tEnglish\tAverage\tTotal\tSort");
int cIndex;
for(i = 0; i < students.size(); i++){
Map st = students.get(i);
cIndex = 0;
pw.println(st.get(columnName[cIndex++]) + "\t" + st.get(columnName[cIndex++])
+ "\t" + st.get(columnName[cIndex++])+ "\t" + st.get(columnName[cIndex++])
+ "\t" + st.get(columnName[cIndex++])
+ "\t" + st.get("Total")
+ "\t" + st.get("Average")
+ "\t" + st.get("Order"));
}
pw.flush();
pw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
10. java 实现文件批量上传下载实现方法 以及优势缺点
File file = new File(path);
BufferedReader reader = null;
try {
reader = new BufferedReader(new FileReader(file));
String tempString = null;
StringBuffer buffer = new StringBuffer();
while ((tempString = reader.readLine()) != null) {
buffer.append(tempString);
}
reader.close();
return buffer.toString();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e1) {
}
}
}
return null;