Stream s = files.InputStream;执行报错

我在mvc中写导入excel文件进数据库,我已有将excel数据导入进datatable的方法。但是在控制器里写导入文件的时候就报如下错误:
ReadTimeout = “((System.Web.HttpPostedFileWrapper)files).InputStream.ReadTimeout”引发了类型“System.InvalidOperationException”的异常
WriteTimeout = “((System.Web.HttpPostedFileWrapper)files).InputStream.WriteTimeout”引发了类型“System.InvalidOperationException”的异常
请问如何解决?
我控制器里面的代码如下:
public ActionResult ExcelToSQL(HttpPostedFileBase files)
{
if (files == null || files.ContentLength <= 0)
{
return View();
}
string filename = Path.GetFileName(files.FileName);
string fileEx = Path.GetExtension(filename);//获取上传文件的扩展名
bool isXslx = false;//判断导入的文件是不是xslx类型
if (fileEx == ".xslx")
{
isXslx = true;
}
if (fileEx == ".xls")
{
isXslx = false;
}

        byte[] bytes = null;
        using (var binaryReader = new BinaryReader(files.InputStream))
        {
            bytes = binaryReader.ReadBytes(files.ContentLength);
        }
        Stream s = new MemoryStream(bytes);

        NPOIExport npoie = new NPOIExport();//导入数据库封装导入方法的类
        DataTable dt = new DataTable();

        dt = npoie.ExcelToDataTable(s, isXslx);//ExcelToDataTable是返回一个datatable类型的方法(将excel文件导入到Datatable的方法)
        string connectionString = "server=.;database=Mvcupdate2;uid=sa;pwd=sa;";
        SqlConnection con = new SqlConnection(connectionString);//连接数据库
        con.Open();
        SqlTransaction trans = con.BeginTransaction();//事物对象 
        try
        {
            SqlCommand com = new SqlCommand();//数据操作对象  
            com.Connection = con;//指定连接  
            com.Transaction = trans;//指定事物
            string sql = "";
            for (int ii = 1; ii < npoie.ExcelToDataTable(s, isXslx).Rows.Count; ii++)
            {  //对datatable循环    
                sql = "INSERT INTO DeptModels(name,chengyuan)values ('" + dt.Rows[ii]["名称"].ToString() + "','" + dt.Rows[ii]["成员"].ToString() + "')";//某一行的数据
                com.CommandText = sql;
                com.ExecuteNonQuery();//执行该行   
            }
            trans.Commit();//如果全部执行完毕.提交
            Response.Write("导入成功!");
        }
        catch
        {
            trans.Rollback();//如果有异常.回滚.  
        }
        finally
        {
            con.Close();//关闭连接 
        }
        s.Close();
        return View();
    }

1个回答

第一种情况无受权!

第二种情况在获取session,无转换!

第三种情况就是操作和数据类型没转型!

具体要看代码。

chenxiang_168
chenxiang_168 我更新了代码附上了,可以帮我看看吗?
接近 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
ashx中IRequiresSessionState接口导致Request.InputStream空

我用context.Request.InputStream 获得json数据 但是加IRequiresSessionState接口就失效了,请问大神这是为啥啊,我用的是vs2010.

XML大文件流解析 线程终止

最近开发一个xml文件流解析项目(web) 对方发送xml格式文件流 我方获取并进行解析入库 我写了2中方案 去获取文件流并解析 第一种 Stream m_Stream = Request.InputStream; if (m_Stream.Length > 0){ XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(m_Stream); XmlElement xmlRoot = xmlDoc.DocumentElement; } 第二种 StreamReader read = new StreamReader(Request.InputStream); string xmldata = read.ReadToEnd(); XmlDocument xmldoc = new XmlDocument(); xmldoc.LoadXml(xmldata); XmlElement xmlRoot = xmlDoc.DocumentElement; 以上2种方式 都能获取到并且加载 但是遇到文件流大于2M(文件流长度为几百万的时候)的时候 经常报错(线程终止) 且解析的时间 经常长达几分钟 请问下有没有好的解决方案 或者配置文件 需要配置什么么?

java poi getInpuStream报错

是这样的,我写了重载了两个getInputStream方法,当调用不带参数的方法时,运行正常,当调用带参的方法则报 Can not find a java.io.InputStream with the name [inputStream] in the invocation stack的错误 代码如下: Struts2配置: ``` <action name="ajaxUserDataExportAction" class="com.action.AjaxUserDataExportAction"> <result type="stream"> <param name="ContentType">application/vnd.ms-excel</param> <param name="inputName">inputStream</param> <param name="contentDisposition">filename="user.xlsx"</param> </result> </action> ``` spring配置 ``` <bean id="userManageService" class="com.hy.serviceimp.UserManageService"> <property name="baceDaoImp" ref="baceDaoImp"></property> </bean> ``` 调用代码: 调用带参数的getInputStream,程序报错 ``` public InputStream getInputStream() { System.out.println(userManageService.getInputStream(curPage, pageSize, sortName, sortOrder, searchValue)==null); return userManageService.getInputStream(curPage, pageSize, sortName, sortOrder, searchValue); } ``` 调用不带参数的,则运行正常 ``` public InputStream getInputStream() { System.out.println(userManageService.getInputStream()==null); return userManageService.getInputStream(); } ```

关于.NET HTTP的POST请求获取报文体的问题

在WCF中,用restful做接口,方法是调通了,问题在于获取文件流的时候,之前用WebService的时候,代码为: HttpRequest request = HttpContext.Current.Request; Stream reqStream = request.InputStream; StreamReader streamReader = new StreamReader(reqStream, System.Text.Encoding.UTF8); string requestJson = streamReader.ReadToEnd(); 现在换成了WCF rest,不能使用request.InputStream。 报错:在调HttpRequest.GetBufferlessInputStream 之后,此方法或属性不受支持。 所以改为: HttpRequest request = HttpContext.Current.Request; Stream reqStream = request.GetBufferlessInputStream(); StreamReader streamReader = new StreamReader(reqStream, System.Text.Encoding.UTF8); string requestJson = streamReader.ReadToEnd(); 问题就在于,改完以后,streamReader.ReadToEnd();获取不到报文体的数据了,返回为空字符串。 找了一下午的解决方案,还是找不到,求大神解答。感激不尽~

image = Image.FromStream(ms, true);参数无效 求大神解决

var photoTxt = GetParam("photoTxt"); ---获取的是base64 var imageBytes = Convert.FromBase64String(photoTxt); ms = new MemoryStream(imageBytes, 0, imageBytes.Length); ms.Write(imageBytes, 0, imageBytes.Length); image = Image.FromStream(ms, true); image.Save(toFile); base64如下: SuZTUzIxAAADpagECAUHCc7QAAAjpHYBAAAAg0gbt6XLAMcMiQBlAEeooQD5APEPLACRpb4PRwCRAAkPEaSmAMsNMgAjALCq0wA7ABYPNAA0pRcPogDVAAoMvqXvAOAP8QAEAM2qswBmAJEPNgBxpT8PWgARAWEP3aUqAfUMTQCIAFWqRwA4ARcPegCZpbcPbgDWAH8Py6X+AOcPlQCdAA2qDAHTAN0J6gCRpcQL7QBOAOMPyaVKAfoOJgDcAaqqJPny6YcQ/pJs0l5/ghBSJVMOjSQ7C9f0NQp6i3jeG//680sM3g3wtsb7ZgCG8AKGslfnAKvbnQkz4dFUyPkS8EIRD/CZom4QgoTLfuLekST/GQMrMo+S/XxW4/47EDsXqo8w7n6TPncKc+ZnxV4W8IMmx+1ee+BuQAki+sv0Q3xgXvq7PhBqF5Yjul+Oc/sXIRIzEJVMXwZHFzcLP5egXNIF/hOKB+UrAqc+IOgEAK3UBkmoAVks7f88OsBG5A8A6zSJVqLAwmH+wMQEAPPwBvhlEADLOYzBtIbDZP/HdcAMABY6BVlH/f7A+sI6BwNUOxrC/fvDPgwDdj4aMP8x//AqA0pOHv/8//6EL8Na/jspI/7/7/87Wv3+GyEGAI5RVCHBAwCXWQk7IwMLaZPCwsTEBcTC3cHCwsLCwAfBwGfAw8DAwcMEwMFkwP3CGAC2qSb8Wf//wf4q/D/7/V7+/v378/vvBQM0x7T96fgOxfR1mEHAwfw9/vQJA4x7TIlqwRzFRYxs/kH9MzX9Ov/+W///wP/+/wX+ML4BS4/QwDw4/cNb/y7+/f/+Bf7DWML7/8D8LsXsjGaDw8GMfIwEnWxlwHhswcDCB8GHZ2hzBwAblYbEWWQKADGXQ34H/8MsGABHl0ZwRoOKZ8L+wsCDdcMAhAZIwqUYABRtNGHXwIRvaX7BiQkCtaxXwGBGF8URuZKEwITAi8KjfniyAbbJycKGBsHHY8LFhMLAw1eaF6UNyjBWcHcEcHbAEABv07f+/v7+Wfj8/f3//zv8Q6Wj09DDgMYDxsVkkp/FxJeJBMHCNJrDwsHCnQR4g2TDwcHCwsEHwsJlwMHBwsEFxQvjjFAFAAjrLaITA5LtLcHBw2pFwH1nwEsNAAf79INoZcNqDBAIE+zCw1rDwMLAaQPVLBy7wQcQCCMmBcL8KAIQRlsWwcAQCpQsiQ0QSjjW/3Rlw2ZsBRBH+RyHoRG4YABwA9UKQo7D 程序走到 image = Image.FromStream(ms, true); 报异常“参数无效”

【新手】socket服务器获取浏览器请求时inputstream.read()返回值出问题

通过socket练习手写服务器,希望在服务器接收浏览器提交请求时通过循环执行inputstream.read()获取数据放入byte[1024]中,转成字符串最后输出至控制台,但在测试时虽然浏览器提交的测试数据不到1024字节,在第一次循环时inputsrteam.read()的返回值既不是-1也不是1024,而是接受到的数据实际大小(大约400多字节),导致第二次进入while循环,程序就阻塞在第二次inputstream.read()中,此时浏览器再次提交表单时服务器这边就直接报错了,报错点仍然指向while循环判断中的inputstream.read(),这明显不合理啊,向各位大佬求解。。。 源码: ``` package test; import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.DataInputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.ServerSocket; import java.net.Socket; public class Server { ServerSocket server; public static void main(String[] args) { Server server = new Server(); server.start(); } public void start() { try { server = new ServerSocket(8888); receive(); } catch (IOException e) { System.out.println("开启数据库失败"); e.printStackTrace(); } } private void receive() { try { Socket client = server.accept(); byte[] buff = new byte[1024]; StringBuilder sb = new StringBuilder(); BufferedInputStream bis = new BufferedInputStream(client.getInputStream()); while (-1 != bis.read(buff)) { sb.append(new String(buff, 0, buff.length)); } String requestInfo = sb.toString().trim(); System.out.println(requestInfo); } catch (IOException e) { e.printStackTrace(); System.out.println("开启客户端socket失败"); } } public void stop() { } } ``` 浏览器第二次提交表单时,服务器这边的报错信息,(浏览器第一次提交表单时程序处于阻塞状态): ``` java.net.SocketException: Connection reset 开启客户端socket失败 at java.net.SocketInputStream.read(SocketInputStream.java:210) at java.net.SocketInputStream.read(SocketInputStream.java:141) at java.io.BufferedInputStream.fill(BufferedInputStream.java:246) at java.io.BufferedInputStream.read1(BufferedInputStream.java:286) at java.io.BufferedInputStream.read(BufferedInputStream.java:345) at java.io.FilterInputStream.read(FilterInputStream.java:107) at test.Server.receive(Server.java:48) at test.Server.start(Server.java:24) at test.Server.main(Server.java:17) ```

java多线程报错 java.io.IOException: Stream closed

虽然程序可以正确的讲读取到的信息输出到文本文件 但是报错:java.io.IOException: Stream closed 不知道是什么原因 菜鸟请各位帮忙看一下 代码如下: package test; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.Scanner; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class Test implements Runnable{ String lineString; public Test(String line){ this.lineString = line; } static FileWriter writer; static FileReader reader; public static void main(String[] args) throws IOException { try { reader = new FileReader("/Users/tcredit-0002/Desktop/car.txt"); Scanner scanner = new Scanner(reader); String lineString; writer = new FileWriter("/Users/tcredit-0002/Desktop/hebei.txt"); // TODO Auto-generated method stub ExecutorService pool = Executors.newFixedThreadPool(3); while(scanner.hasNext()){ lineString = scanner.nextLine(); pool.execute(new Test(lineString)); } scanner.close(); writer.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } @Override public void run() { try { writeResult(lineString); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static synchronized void writeResult(String lineString) throws InterruptedException{ try { writer.write(lineString+"\r\n"); writer.flush(); System.out.println(lineString); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }

关于glide的问题有没有大神来看看!

``` Load failed for http://ceshi.cxbim.com/api/User/0a800038-1e2d-41dd-87a4-052665bdaa5a/GetAvatar with size [90x90] class com.bumptech.glide.load.engine.GlideException: Failed to load resource There was 1 cause: com.bumptech.glide.load.HttpException(Unauthorized) call GlideException#logRootCauses(String) for more detail Cause (1 of 1): class com.bumptech.glide.load.engine.GlideException: Fetching data failed, class java.io.InputStream, REMOTE ``` 这是我的glide报错日志。首先我已经试过将http换成https了还是不行,这是后端传的图片问题还是我的问题。他们是用流的形式上传的图片。有没人知道怎么操作???

各位大神帮忙看看 socket.inputStream.read(buffer)的读取问题

0000000237{"CODE":"100"}我想读取这个数据流 的前面的一串数字 就是0000000237这串数字 这里有十个字节 ![图片说明](https://img-ask.csdn.net/upload/201508/28/1440729281_470510.png)不知道为什的得到的却是 后面的json,希望给位大神帮忙!

System.Web.HttpContext.Current.Request中Request不可用

![图片说明](https://img-ask.csdn.net/upload/202004/07/1586266215_163120.png) 如何处理呢?我很菜,大哥们

struts2 错误, 验证码问题,报错,谁帮我看下,img图片显示不了验证码?

------------------ java.lang.IllegalArgumentException: Can not find a java.io.InputStream with the name [inputStream] in the invocation stack. Check the <param name="inputName"> tag specified for this action. org.apache.struts2.dispatcher.StreamResult.doExecute(StreamResult.java:237) org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:186) com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:373) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:277) com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) ----------------------- 我的form表单 < input type="password" name="checklist" id="inputPassword" placeholder="Password"> < img src="rand.action" onclick="changeValidateCode(this)" /> 这是前台代码 function changeValidateCode(obj) { var currentTime= new Date().getTime(); obj.src = "rand.action?d=" + currentTime; } 调用的js函数 然后action类 public class RandomPictureAction extends ActionSupport { public RandomPictureAction() { } public String execute() throws Exception { int width = 85; int height = 20; BufferedImage image = new BufferedImage(width, height, 1); Graphics g = image.getGraphics(); Random random = new Random(); g.setColor(getRandColor(200, 250)); g.fillRect(0, 0, width, height); g.setFont(new Font("Times New Roman", 0, 18)); g.setColor(getRandColor(160, 200)); for(int i = 0; i < 155; i++) { int x = random.nextInt(width); int y = random.nextInt(height); int xl = random.nextInt(12); int yl = random.nextInt(12); g.drawLine(x, y, x + xl, y + yl); } String sRand = ""; for(int i = 0; i < 6; i++) { String rand = String.valueOf(random.nextInt(10)); sRand = (new StringBuilder(String.valueOf(sRand))).append(rand).toString(); g.setColor(new Color(20 + random.nextInt(110), 20 + random.nextInt(110), 20 + random.nextInt(110))); g.drawString(rand, 13 * i + 6, 16); } ActionContext.getContext().getSession().put("rand", sRand); g.dispose(); ByteArrayOutputStream output = new ByteArrayOutputStream(); ImageOutputStream imageOut = ImageIO.createImageOutputStream(output); ImageIO.write(image, "JPEG", imageOut); imageOut.close(); ByteArrayInputStream input = new ByteArrayInputStream(output.toByteArray()); setInputStream(input); return "success"; } private Color getRandColor(int a, int b) { Random random = new Random(); if(a > 255) a = 255; if(b > 255) b = 255; int R = a + random.nextInt(b - a); int G = a + random.nextInt(b - a); int B = a + random.nextInt(b - a); return new Color(R, G, B); } public void setInputStream(ByteArrayInputStream inputStream) { this.inputStream = inputStream; } public ByteArrayInputStream getInputStream() { return inputStream; } private ByteArrayInputStream inputStream; } 配置action的struts.xml < ation name="rand" class="action.RandomPictureAction"> < result type="stream"> < param name="contentType">image/jpeg < param name="inputName">inputStream < /result> < /action> 结果img图片没有显示出来,

Okhttp3 post请求报错,有大神知道解决办法吗?

![图片说明](https://img-ask.csdn.net/upload/202003/12/1583987817_691210.png) 有时候执行到红框部分便抛出以下异常 ``` java.net.SocketException: Connection reset at java.net.SocketInputStream.read(SocketInputStream.java:210) at java.net.SocketInputStream.read(SocketInputStream.java:141) at sun.security.ssl.InputRecord.readFully(InputRecord.java:465) at sun.security.ssl.InputRecord.read(InputRecord.java:503) at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:975) at sun.security.ssl.SSLSocketImpl.waitForClose(SSLSocketImpl.java:1761) ``` 但是有时候又可以正常运行,我一直觉得是网络不好才会报错,但不知还有没有其它原因???

FTPClient上传storeFile报错,求救

今天要写一个很简单的ftp上传的代码,结果总是报错,请教各位大神来帮忙解决 这是我的代码 ``` public class UpLoadJSToFtp { /** * * @param url ftp服务器地址 * @param port ftp服务器端口号 * @param userName 登录账号 * @param password 登录密码 * @param path 服务器保存路径 * @param fileName 文件名 * @param input 输入流 * @return 上传成功返回true ,失败返回false */ public static boolean uploadFile(String url, int port, String userName, String password, String path, String fileName, InputStream input){ boolean isSuccess = false; FTPClient ftp = new FTPClient(); ftp.setControlEncoding("UTF-8"); try { int reply; ftp.connect(url);// 连接FTP服务器 // 如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器 boolean loginResualt = ftp.login(userName, password); reply = ftp.getReplyCode(); if(!loginResualt && !FTPReply.isPositiveCompletion(reply)){ ftp.disconnect(); return isSuccess; } ftp.setFileType(FTPClient.BINARY_FILE_TYPE); ftp.makeDirectory(path); ftp.changeWorkingDirectory(path); ftp.enterLocalPassiveMode(); ftp.storeFile(fileName, input); input.close(); ftp.logout(); isSuccess = true; } catch (SocketException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { if(ftp.isConnected()) { try { ftp.disconnect(); } catch(IOException ioe) { } } } return isSuccess; } /** * 将本地文件上传到FTP服务器上 * */ public static void upLoadFromProduction(String url,// FTP服务器hostname int port,// FTP服务器端口 String username, // FTP登录账号 String password, // FTP登录密码 String path, // FTP服务器保存目录 String filename, // 上传到FTP服务器上的文件名 String pathName // 输入流文件路径 ) { try { FileInputStream in = new FileInputStream(new File(pathName)); boolean flag = uploadFile(url, port, username, password, path,filename, in); System.out.println(flag); } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) { String url = "172.25.5.229"; int port = 22; String username = "etdftp"; String password = "123"; String path = "/caoyang"; String filename = "caoyangFTPTEST.js"; String pathName = "D:/FndData_1021.js"; upLoadFromProduction(url, port, username, password, path, filename, pathName); } } ``` 这是报的错误,求解 ``` java.net.SocketException: Connection reset at java.net.SocketInputStream.read(SocketInputStream.java:189) at java.net.SocketInputStream.read(SocketInputStream.java:121) at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:283) at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:325) at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:177) at java.io.InputStreamReader.read(InputStreamReader.java:184) at java.io.BufferedReader.fill(BufferedReader.java:154) at java.io.BufferedReader.read(BufferedReader.java:175) at org.apache.commons.net.io.CRLFLineReader.readLine(CRLFLineReader.java:58) at org.apache.commons.net.ftp.FTP.__getReply(FTP.java:310) at org.apache.commons.net.ftp.FTP.__getReply(FTP.java:290) at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:479) at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:552) at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:601) at org.apache.commons.net.ftp.FTP.pasv(FTP.java:952) at org.apache.commons.net.ftp.FTPClient._openDataConnection_(FTPClient.java:755) at org.apache.commons.net.ftp.FTPClient._storeFile(FTPClient.java:565) at org.apache.commons.net.ftp.FTPClient.__storeFile(FTPClient.java:557) at org.apache.commons.net.ftp.FTPClient.storeFile(FTPClient.java:1795) at stag.utils.UpLoadJSToFtp.uploadFile(UpLoadJSToFtp.java:54) at stag.utils.UpLoadJSToFtp.upLoadFromProduction(UpLoadJSToFtp.java:89) at stag.utils.UpLoadJSToFtp.main(UpLoadJSToFtp.java:104) false ```

如何在 Java 中将 InputStream 读取 / 转换为 String?

<div class="post-text" itemprop="text"> <p>If you have a <code>java.io.InputStream</code> object, how should you process that object and produce a <code>String</code>?</p> <hr> <p>Suppose I have an <code>InputStream</code> that contains text data, and I want to convert it to a <code>String</code>, so for example I can write that to a log file.</p> <p>What is the easiest way to take the <code>InputStream</code> and convert it to a <code>String</code>?</p> <pre><code>public String convertStreamToString(InputStream is) { // ??? } </code></pre> </div> <p>转载于:https://stackoverflow.com/questions/309424/how-to-read-convert-an-inputstream-into-a-string-in-java</p>

HttpContext.Current.Request 异常的问题

![图片说明](https://img-ask.csdn.net/upload/201704/12/1491981341_215683.png) 这个异常是什么原因,比较纠结,感谢

inputStream中read()疑问求解

ApI说read()方法返回一个0-255之间的int值,如果被读取的文件存储的是文字比如"你好" 那么返回的字节(默认编码表=GBK)不应该是负数么?(被读取文件编码是GBK) 我在Java中试了一下,被读取文件是你好,返回的是四个正数,而我设定一个 String s="你好"; byte[]bytes=s.getBytes(); for(byte b:bytes){ System.out.println(b); }得到的是四个负数(-60,-29,-70,-61) 小白一枚,请通俗易懂一些

properties.load()方法,传入的对象是reader,为什么会报错 。

load方法有重载的 是可以传入Reader对象的,为什么我的这个会报错,![图片说明](https://img-ask.csdn.net/upload/201611/16/1479259090_98665.png)求帮助!

java poi读取excel Workbook类错误

具体问题是报错显示workbook类找不到,但是类已经导入到工程中。烦请大神帮忙看看解决。感谢! 报错信息 ``` 严重: Servlet.service() for servlet [com.oabkdao.servlet.IndexServlet] in context with path [/oabkdao] threw exception [Servlet execution threw an exception] with root cause java.lang.ClassNotFoundException: org.apache.poi.ss.usermodel.Workbook ``` Servlet调用XlsMain类 ``` XlsMain XlsMain = new XlsMain(); XlsMain.main(null); ``` XlsMain类 ``` package com.oabkdao.io; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.Iterator; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class XlsMain { public static void main(String[] args) { readXml("C:\\Users\\SJN\\Desktop\\国内改.xlsx"); System.out.println("-------------"); readXml("C:\\Users\\SJN\\Desktop\\国内改.xlsx"); } public static void readXml(String fileName){ boolean isE2007 = false; //判断是否是excel2007格式 if(fileName.endsWith("xlsx")) {isE2007 = true;} try { InputStream input = new FileInputStream(fileName); //建立输入流 Workbook wb = null; //根据文件格式(2003或者2007)来初始化 if(isE2007) { wb = new XSSFWorkbook(input); } else { wb = new HSSFWorkbook(input);} Sheet sheet = wb.getSheetAt(0); //获得第一个表单 Iterator<Row> rows = sheet.rowIterator(); //获得第一个表单的迭代器 while (rows.hasNext()) { Row row = rows.next(); //获得行数据 System.out.println("Row #" + row.getRowNum()); //获得行号从0开始 Iterator<Cell> cells = row.cellIterator(); //获得第一行的迭代器 while (cells.hasNext()) { Cell cell = cells.next(); System.out.println("Cell #" + cell.getColumnIndex()); switch (cell.getCellType()) { //根据cell中的类型来输出数据 case HSSFCell.CELL_TYPE_NUMERIC: System.out.println(cell.getNumericCellValue()); break; case HSSFCell.CELL_TYPE_STRING: System.out.println(cell.getStringCellValue()); break; case HSSFCell.CELL_TYPE_BOOLEAN: System.out.println(cell.getBooleanCellValue()); break; case HSSFCell.CELL_TYPE_FORMULA: System.out.println(cell.getCellFormula()); break; default: System.out.println("unsuported sell type"); break; } } } } catch (IOException ex) { ex.printStackTrace(); } } } ```

inputStream解析url报错:UnKnownHostException:xxx.com

原文已发布在android论坛,但是没人回应,悬赏了100没人理我。 原文链接: http://bbs.csdn.net/topics/390566835?page=1#post-395413355 程序很简单: main里: String urlString = "http://ftp121455.host181.web522.com/daoyutwo.txt"; InputStream inputStream; onCreat里: try { URL url = new URL(urlString); //方法1: inputStream = url.openStream(); Log.e("internet", "got InputStream"); //方法2: URLConnection urlConnection = url.openConnection(); inputStream = urlConnection.getInputStream(); Log.e("internet", "got InputStream"); //方法3: URLConnection urlConnection = url.openConnection(); HttpURLConnection httpURLConnection = (HttpURLConnection)urlConnection; inputStream = httpURLConnection.getInputStream(); Log.e("internet", "got InputStream"); } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } 用真机测试,结果每次执行到"inputStream = xxx"都会报错: java.net.UnKnownHostException: http://ftp121455.host181.web522.com 有的时候手机上同样的两个工程,函数都一样的,一个可以另一个不可以。 用模拟器完美运行。 求指点该怎么办?用手机怎么都不行,都要急死了。

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

程序员请照顾好自己,周末病魔差点一套带走我。

程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。

我以为我学懂了数据结构,直到看了这个导图才发现,我错了

数据结构与算法思维导图

String s = new String(" a ") 到底产生几个对象?

老生常谈的一个梗,到2020了还在争论,你们一天天的,哎哎哎,我不是针对你一个,我是说在座的各位都是人才! 上图红色的这3个箭头,对于通过new产生一个字符串(”宜春”)时,会先去常量池中查找是否已经有了”宜春”对象,如果没有则在常量池中创建一个此字符串对象,然后堆中再创建一个常量池中此”宜春”对象的拷贝对象。 也就是说准确答案是产生了一个或两个对象,如果常量池中原来没有 ”宜春” ,就是两个。...

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

Linux面试题(2020最新版)

文章目录Linux 概述什么是LinuxUnix和Linux有什么区别?什么是 Linux 内核?Linux的基本组件是什么?Linux 的体系结构BASH和DOS之间的基本区别是什么?Linux 开机启动过程?Linux系统缺省的运行级别?Linux 使用的进程间通信方式?Linux 有哪些系统日志文件?Linux系统安装多个桌面环境有帮助吗?什么是交换空间?什么是root帐户什么是LILO?什...

将一个接口响应时间从2s优化到 200ms以内的一个案例

一、背景 在开发联调阶段发现一个接口的响应时间特别长,经常超时,囧… 本文讲讲是如何定位到性能瓶颈以及修改的思路,将该接口从 2 s 左右优化到 200ms 以内 。 二、步骤 2.1 定位 定位性能瓶颈有两个思路,一个是通过工具去监控,一个是通过经验去猜想。 2.1.1 工具监控 就工具而言,推荐使用 arthas ,用到的是 trace 命令 具体安装步骤很简单,大家自行研究。 我的使用步骤是...

学历低,无法胜任工作,大佬告诉你应该怎么做

微信上收到一位读者小涛的留言,大致的意思是自己只有高中学历,经过培训后找到了一份工作,但很难胜任,考虑要不要辞职找一份他能力可以胜任的实习工作。下面是他留言的一部分内容: 二哥,我是 2016 年高中毕业的,考上了大学但没去成,主要是因为当时家里经济条件不太允许。 打工了三年后想学一门技术,就去培训了。培训的学校比较垃圾,现在非常后悔没去正规一点的机构培训。 去年 11 月份来北京找到了一份工...

JVM内存结构和Java内存模型别再傻傻分不清了

JVM内存结构和Java内存模型都是面试的热点问题,名字看感觉都差不多,网上有些博客也都把这两个概念混着用,实际上他们之间差别还是挺大的。 通俗点说,JVM内存结构是与JVM的内部存储结构相关,而Java内存模型是与多线程编程相关,本文针对这两个总是被混用的概念展开讲解。 JVM内存结构 JVM构成 说到JVM内存结构,就不会只是说内存结构的5个分区,而是会延展到整个JVM相关的问题,所以先了解下

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

Google 与微软的浏览器之争

浏览器再现“神仙打架”。整理 | 屠敏头图 | CSDN 下载自东方 IC出品 | CSDN(ID:CSDNnews)从 IE 到 Chrome,再从 Chrome 到 Edge,微软与...

讲一个程序员如何副业月赚三万的真实故事

loonggg读完需要3分钟速读仅需 1 分钟大家好,我是你们的校长。我之前讲过,这年头,只要肯动脑,肯行动,程序员凭借自己的技术,赚钱的方式还是有很多种的。仅仅靠在公司出卖自己的劳动时...

上班一个月,后悔当初着急入职的选择了

最近有个老铁,告诉我说,上班一个月,后悔当初着急入职现在公司了。他之前在美图做手机研发,今年美图那边今年也有一波组织优化调整,他是其中一个,在协商离职后,当时捉急找工作上班,因为有房贷供着,不能没有收入来源。所以匆忙选了一家公司,实际上是一个大型外包公司,主要派遣给其他手机厂商做外包项目。**当时承诺待遇还不错,所以就立马入职去上班了。但是后面入职后,发现薪酬待遇这块并不是HR所说那样,那个HR自...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

搜狗输入法也在挑战国人的智商!

故事总是一个接着一个到来...上周写完《鲁大师已经彻底沦为一款垃圾流氓软件!》这篇文章之后,鲁大师的市场工作人员就找到了我,希望把这篇文章删除掉。经过一番沟通我先把这篇文章从公号中删除了...

85后蒋凡:28岁实现财务自由、34岁成为阿里万亿电商帝国双掌门,他的人生底层逻辑是什么?...

蒋凡是何许人也? 2017年12月27日,在入职4年时间里,蒋凡开挂般坐上了淘宝总裁位置。 为此,时任阿里CEO张勇在任命书中力赞: 蒋凡加入阿里,始终保持创业者的冲劲,有敏锐的...

总结了 150 余个神奇网站,你不来瞅瞅吗?

原博客再更新,可能就没了,之后将持续更新本篇博客。

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

男生更看重女生的身材脸蛋,还是思想?

往往,我们看不进去大段大段的逻辑。深刻的哲理,往往短而精悍,一阵见血。问:产品经理挺漂亮的,有点心动,但不知道合不合得来。男生更看重女生的身材脸蛋,还是...

什么时候跳槽,为什么离职,你想好了么?

都是出来打工的,多为自己着想

程序员为什么千万不要瞎努力?

本文作者用对比非常鲜明的两个开发团队的故事,讲解了敏捷开发之道 —— 如果你的团队缺乏统一标准的环境,那么即使勤劳努力,不仅会极其耗时而且成果甚微,使用...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发(16k)

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

终于懂了TCP和UDP协议区别

终于懂了TCP和UDP协议区别

立即提问
相关内容推荐