站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题struts框架下上传文本文件,为什么写了两次?急急急,大家来看指点一下啊!

struts框架下上传文本文件,为什么写了两次?急急急,大家来看指点一下啊!

摘要: struts框架下上传文本文件,为什么写了两次?急急急,大家来看指点一下啊!


有文件形如:
20050101 AAA 0.1
20050101 BBB 0.2
20050101 CCC 0.3
.....
20050101 ZZZ 0.26

jsp页面如下:
<form name="fm" method="post" ENCTYPE="multipart/form-data">
<input type=file name="uploadFile">
</form>

上传程序如下:
//得到FormFile文件
FormUpload tform = (FormUpload ) form;
FormFile myFile = tform.getUploadFile();

String varAttachment = myFile.getFileName();

path = "c://"+varAttachment;
InputStream is = null;
FileOutputStream fo = null;

try {
fo = new FileOutputStream(path);
byte[] buff = new byte[1024];
is = myFile.getInputStream();
int longth = -1;
while ( (longth = is.read(buff)) > 0) {
fo.write(buff);
}
}
catch (Exception e) {
e.printStackTrace();
}
finally {
try {
fo.close();
is.close();
}
catch (Exception e) {}
}

但是上传以后得到的文件是:
20050101 AAA 0.1
20050101 BBB 0.2
20050101 CCC 0.3
.....
20050101 ZZZ 0.2620050101 AAA 0.1
20050101 AAA 0.1
20050101 BBB 0.2
20050101 CCC 0.3
......
20050101 ZZZ 0.26

文件中字符之间的间隔符是制表符/t,为什么会写了两次呢?请大家帮我分析一下可能出错的地方,谢谢了



不用那么麻烦:

File theFile = new File(fileName);
FileOutputStream out = new FileOutputStream(theFile);
out.write(thisForm.getTheFile().getFileData());
out.close();


这样服务器好像得不到本地的文件吧,现在是往服务器上传的文件写了两遍的问题


一楼正解



fo = new FileOutputStream(path);
改成

fo = new FileOutputStream(path,false);


光从这段代码来说没什么问题。
是不是你upload按了两次?
把代码改成这样试试
while ( (longth = is.read(buff))!=-1) {
fo.write(buff,0,longth);
}



↑返回目录
前一篇: 能不能从一个任意位置的java源文件将这个类load?
后一篇: String类型的对象是不可改变的.这句话怎么理解?