Java 如何从Apache';s UploadedFile类?

Java 如何从Apache';s UploadedFile类?,java,apache,file,file-upload,Java,Apache,File,File Upload,如何将上传的文件从apache的UploadedFile类转换为java.io.file类 查看这两个类的文档(和),这里有一个解决方案 由于可以访问上载文件的输入流,因此可以读入上载文件的数据,并将其写入临时位置或应用程序可以管理的其他位置 // assume that you have the UploadedFile object named uploadedFile InputStreamReader reader = new InputStreamReader(uploadedFile

如何将上传的文件从apache的
UploadedFile
类转换为
java.io.file

查看这两个类的文档(和),这里有一个解决方案

由于可以访问上载文件的
输入流
,因此可以读入上载文件的数据,并将其写入临时位置或应用程序可以管理的其他位置

// assume that you have the UploadedFile object named uploadedFile
InputStreamReader reader = new InputStreamReader(uploadedFile.getInputStream());
int partition = 1024;
int length = 0;
int position = 0;
char[] buffer = new char[partition];
FileWriter fstream = new FileWriter("out.tmp");
do{
    length = reader.read(buffer, position, partition)
    fstream.write(buffer, position, length);
}while(length > 0);
File file = new File("out.tmp");

查看这两个类的文档(和),这里有一个解决方案

由于可以访问上载文件的
输入流
,因此可以读入上载文件的数据,并将其写入临时位置或应用程序可以管理的其他位置

// assume that you have the UploadedFile object named uploadedFile
InputStreamReader reader = new InputStreamReader(uploadedFile.getInputStream());
int partition = 1024;
int length = 0;
int position = 0;
char[] buffer = new char[partition];
FileWriter fstream = new FileWriter("out.tmp");
do{
    length = reader.read(buffer, position, partition)
    fstream.write(buffer, position, length);
}while(length > 0);
File file = new File("out.tmp");

最简单的方法是使用apachecommons


最简单的方法是使用apachecommons

此代码将以txt文件的形式返回上载的文件


此代码将以txt文件的形式返回上载的文件

下一行显示错误-while(length=reader.read(buffer,position,partition))类型不匹配:无法从int转换为boolean尝试此方法,但复制的文件已损坏。系统说“无法打开文件”。下一行显示错误-while(length=reader.read(buffer,position,partition))类型不匹配:无法从int转换为boolean尝试此方法,但复制的文件已损坏。系统显示“无法打开文件”。
InputStreamReader reader = new InputStreamReader(uploadedFile.getInputstream());
BufferedReader br = new BufferedReader(reader);
File f = new File("file.txt");
FileWriter fw = new FileWriter(f,false);
BufferedWriter bw = new BufferedWriter(fw);

while((line = br.readLine()) != null){
   fw.write(line + System.lineSeparator());
}