首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GWTUpload InputStream返回-1

GWTUpload InputStream返回-1
EN

Stack Overflow用户
提问于 2014-03-08 21:48:21
回答 1查看 100关注 0票数 1

在使用GWTUpload将CSV文件上传到GAE后,我在解析CSV文件时遇到了问题。上传似乎很好,但是我在使用来自getInputStream的FileItem方法从文件中读取数据时遇到问题。我的代码如下所示:

代码语言:javascript
复制
for (FileItem item : sessionFiles) {
      if (!item.isFormField()) {
          logger.log(Level.INFO, "file item is: " + item.getName());
          try{
              /* The below line prints -1 when uncommented
               * logger.log(Level.INFO, "input stream read is: " + item.getInputStream().read());
               */
              InputStreamReader insr = new InputStreamReader(item.getInputStream());

              //This is just for debugging purposes
              //String insString = Integer.toString(insr.read());

              BufferedReader br = new BufferedReader(insr);
              //logger.log(Level.INFO, "first row is: " + br.readLine());
              logger.log(Level.INFO, "calling on parseCSV");
              parseCSV(br);
          }
          catch(Exception e){
              throw new UploadActionException(e);
          }
      }
    }

我只上传一个文件使用SingleUploader,它似乎是正确的上传。例如,

代码语言:javascript
复制
logger.log(Level.INFO, "file item is: " + item.getName());

行正确输出CSVExample.csv。但是,

代码语言:javascript
复制
logger.log(Level.INFO, "file item is: " + item.getName());

行总是输出-1,指示流的结尾。

我的csv文件如下所示:

代码语言:javascript
复制
,vendor_food,open,emptyKey,,Hot Dogs,49.28241993,-123.1243637
DT56,vendor_food,open,invalidLat,Coal Harbour Seawall  - 200 Metres Northeast of Broughton St,Hot Dogs,tt,-123.1236823
E423,vendor_food,open,invalidLon,,Hot Dogs,49.28449252,tt
EB05,vendor_food,open,emptyLat,,Hot Dogs,,-123.1432294
EB07,vendor_food,open,emptyType,,,49.28763934,-123.1425256
GM02,vendor_food,pending,closed,,Hot Dogs,49.28298256,-123.1172526
GM05,vendor_food,open,valid,sadsadsadsadsadsad,Hot Dogs,49.28051786,-123.1209519

有人对我做错了什么有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-16 02:31:29

这是很久以前的事了,但我想我应该更新一下,以防有一天其他人遇到这种情况。

从文件上传到我在上面的代码块中解析它的时候,来自每个FileItem的输入流已经被访问。所以当我去读输入流时,那里什么也没有。我不记得它是在哪里被访问的,但我隐约记得它发生在doGet方法中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22275490

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档