inputstream
很多同学在进行编程学习时缺乏系统学习的资料。本页面基于inputstream内容,从基础理论到综合实战,通过实用的知识类文章,标准的编程教程,丰富的视频课程,为您在inputstream相关知识领域提供全面立体的资料补充。同时还包含 inner join、innerhtml、innerjoin 的知识内容,欢迎查阅!
inputstream相关知识
-
利用Webwork的Inputstream和Outputstream进行文件上传利用Webwork的Inputstream和Outputstream进行文件上传 最近在做一个管理系统,里面涉及到了文件上传;在网上找了好多的方法,不过很多都包含有过期的代码,很是郁闷。 努力了几天,终于用利用Webwork的Inputstream和Outputstream实现了文件的上传 下面具体代码: 1.前台jsp代码: <%-- Created by IntelliJ IDEA. User: Luckystar_N Date: 2007-10-11 Time: 20:19:31 --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ include file="/commo
-
java基础io流——OutputStream和InputStream的故事(温故知新)io流概述:IO流用来处理设备之间的数据传输,上传文件和下载文件,Java对数据的操作是通过流的方式,Java用于操作流的对象都在IO包中。IO流分类按照数据流向输入流 读入数据输出流 写出数据按照数据类型字节流字符流什么情况下使用哪种流呢?如果数据所在的文件通过windows自带的记事本打开并能读懂里面的内容,就用字符流,其他用字节流。如果你什么都不知道,就用字节流。IO流常用基类字节流的抽象基类:InputStream ,OutputStream。字符流的抽象基类:Reader , Writer。注:由这四个类派生出来的子类名称都是以其父类名作为子类名的后缀。如:InputStream的子类FileInputStream。如:Reader的子类FileReader。OutputStream的子类FileOutputStream构造方法:FileOutputStream(File file)FileOutputStream(String name)推荐第二种构造方法:FileOutputStream&nb
-
JAVA,IO:Scanner解决了InputStream类功能不足的问题改进输出功能不足的问题时,java中提供有打印流,随后BuffeedReader进一步完善,最后来到扫描流,完善InputStream所有功能不足的问题,并且简单好用。 Scanner字符串输出: package cn.dujiang.demo; import java.util.Scanner; public class TestDemo { public static void main(String[] args) throws Exception { Scanner scan = new Scanner(System.in) ; //准备接受键盘输入数据 System.out.println("请输入内容:"); if (scan.hasNext()) {//现在输入内容 Sy
-
Hibernate初探之单表映射 3-4 [Hibernate单表操作] 对象类型(ILjava/io/InputStream;J)V异常java.lang.AbstractMethodError: com.mysql.jdbc.PreparedStatement.setBinaryStream(ILjava/io/InputStream;J)V 这里错误是mysql-connector-java-5.0.8.jar驱动版本比较低,直接到mysql官网去下载高版本的,百度有教程。我这里下载的是mysql-connector-java-5.1.47.zip最新的。然后解压后把mysql-jdbc库下的mysql-connector-java-5.0.8.jar改为mysql-connector-java-5.1.47.jar就应该可以了。如果还不行,把连接数据库那边的mysql驱动也改一下
inputstream相关课程
inputstream相关教程
- 4.1 注入 InputStream 在控制器的方法中声明 InputStream 作为入参,Spring MVC 就能注入你想要的 InputStream 对象。@RequestMapping(value = "/testApi04",method = RequestMethod.POST)public void hello(InputStream inputStream) throws IOException { byte[] buff=new byte[128]; int read= inputStream.read(buff); System.out.println(new String(buff,0,read));}上面的实例,能读取到请求包中的数据,但过于低级,可读性并不是很好。Tips: 控制器方法的映射机制有只接受 POST 方法的限制,如果是 GET 方法的请求包,直接使用 InputStream 对象无法获取到请求包中的数据。GET 方法的请求数据是附加在 URL 上的,InputStream 只能读取实体部分的数据。
- 2.1 Java InputStream & OutputStream java.io.InputStream 类是一个抽象超类,它提供最小的编程接口和输入流的部分实现。java.io.InputStream 类定义的几类方法:读取字节或字节数组,一组 read 方法。标记流中的位置,mark 方法。跳过输入字节,skip 方法。找出可读取的字节数,available 方法。重置流中的当前位置,reset 方法。关闭流,close 方法。InputStream 流在创建实例时会自动打开,你可以调用 close 方法显式关闭流,也可以选择在垃圾回收 InputStream 时,隐式关闭流。需要注意的是垃圾回收机制关闭流,并不能立刻生效,可能会造成流对象泄漏,所以一般需要主动关闭。java.io.OutputStream 类同样是一个抽象超类,它提供最小的编程接口和输出流的部分实现。java.io.OutputStream 定义的几类方法:写入字节或字节数组,一组 write 方法。刷新流,flush 方法。关闭流,close 方法。OutputStream 流在创建时会自动打开,你可以调用 close 方法显式关闭流,也可以选择在垃圾回收 OutputStream 时,隐式关闭流。
- 3.2 启动 MyBatis 同样地,我们在 patter 包下新建另一个类,名为StartWithXml.java,并填充以下代码:package com.imooc.mybatis.pattern;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import java.io.IOException;import java.io.InputStream;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;@SuppressWarnings({"SqlResolve", "SqlNoDataSourceInspection", "Duplicates"})public class StartWithXml { public static void main(String[] args) throws IOException, SQLException { // 配置式使用MyBatis String resource = "mybatis-config.xml"; // 读取配置文件 InputStream inputStream = Resources.getResourceAsStream(resource); // 按照配置文件得到 SqlSessionFactory SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); // 新建会话 SqlSession session = sqlSessionFactory.openSession(); // 执行SQL PreparedStatement preStatement = session.getConnection().prepareStatement("SELECT * FROM imooc_user WHERE id = ?"); preStatement.setInt(1, 1); ResultSet result = preStatement.executeQuery(); while (result.next()) { System.out.println("username: " + result.getString("username")); } // 关闭会话 session.close(); }}运行代码,你会看到跟上面一样的结果。
- 2.1 使用一级缓存 下面,我们以一个简单的例子来看看 MyBatis 的一级缓存是如何工作的。package com.imooc.mybatis.cache;import com.imooc.mybatis.mapper.UserMapper;import com.imooc.mybatis.model.User;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import java.io.IOException;import java.io.InputStream;@SuppressWarnings({"Duplicates"})public class CacheTest1 { public static void main(String[] args) throws IOException { String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); SqlSession session = sqlSessionFactory.openSession(); // 得到 mapper UserMapper userMapper = session.getMapper(UserMapper.class); // 查询得到 user1 User user1 = userMapper.selectUserById(1); System.out.println(user1); // 查询得到 user2 User user2 = userMapper.selectUserById(1); // 通过 == 判断 user1 和 user2 是否指向同一内存区间 System.out.println(user1 == user2); session.commit(); session.close(); }}结果:User{id=1, username='peter-gao', age=180, score=1000}true在这个例子中,我们连续两次调用了 userMapper 的 selectUserById 方法,但是在程序输出中,user1 和 user2 却指向了同一块内存区域。这就是 MyBatis 缓存的作用,当第二次调用查询时,MyBatis 没有查询数据库而是直接从缓存中拿到了数据。
- 3. 获取 Bitamp 实例 Android 提供了多种方法获取 Bitamp 实例,我们可以直接从 ImageView 上拿到当前设置的图片的 Bitamp 对象:private Bitmap bmp;private ImageView img;img = (ImageView)findViewById(R.id.imageView);BitmapDrawable drawable = (BitmapDrawable)img.getDrawable();bmp = drawable.getBitmap();从上面的代码中也可以看到我们可以通过 Drawable 的getBitmap()方法从 Drawable 对象中提取出 Bitamp。Android 还提供了一个 BitampFractory 工厂对象,专门让我们去获取 Bitmap 实例,主要有以下几种常用方法:// 从资源文件中解码出 Bitmapprivate Bitmap getBitmapFromResource(Resources res, int resId) { return BitmapFactory.decodeResource(res, resId);}// 从图片文件中获取private Bitmap getBitmapFromFile(String pathName) { return BitmapFactory.decodeFile(pathName);}// 从像素数组中获取public Bitmap Bytes2Bimap(byte[] b) { if (b.length != 0) { return BitmapFactory.decodeByteArray(b, 0, b.length); } else { return null; }}// 读取输入流private Bitmap getBitmapFromStream(InputStream inputStream) { return BitmapFactory.decodeStream(inputStream);}
- 1.3 引入 JDBC 工具类 JDBC 相关操作是本项目的最常用的操作,我封装了一个 JDBC 的工具类,主要通过 Java 的 JDBC API 去访问数据库,提供了加载配置、注册驱动、获得资源以及释放资源等接口。大家可以到我的 Github 仓库下载这个 JDBCUtil类;也可以直接复制下面的代码:package com.colorful.util;import java.io.IOException;import java.io.InputStream;import java.sql.*;import java.util.Properties;/** * @author colorful@TaleLin */public class JDBCUtil { private static final String driverClass; private static final String url; private static final String username; private static final String password; static { // 加载属性文件并解析 Properties props = new Properties(); // 使用类的加载器的方式进行获取配置 InputStream inputStream = JDBCUtil.class.getClassLoader().getResourceAsStream("jdbc.properties"); try { assert inputStream != null; props.load(inputStream); } catch (IOException e) { e.printStackTrace(); } driverClass = props.getProperty("driverClass"); url = props.getProperty("url"); username = props.getProperty("username"); password = props.getProperty("password"); } /** * 注册驱动 */ public static void loadDriver() throws ClassNotFoundException{ Class.forName(driverClass); } /** * 获得连接 */ public static Connection getConnection() throws Exception{ loadDriver(); return DriverManager.getConnection(url, username, password); } /** * 资源释放 */ public static void release(PreparedStatement statement, Connection connection){ if(statement != null){ try { statement.close(); } catch (SQLException e) { e.printStackTrace(); } statement = null; } if(connection != null){ try { connection.close(); } catch (SQLException e) { e.printStackTrace(); } connection = null; } } /** * 释放资源 重载方法 */ public static void release(ResultSet rs, PreparedStatement stmt, Connection conn){ if(rs!= null){ try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } rs = null; } if(stmt != null){ try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); } stmt = null; } if(conn != null){ try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } conn = null; } }}我本地将这个类放在了 com.colorful.util包下,大家可根据自身情况随意放置。另外,由于该类在静态代码块中加载了配置文件jdbc.properties,需要在resource下面新建一个 jdbc.properties文件,并写入一下内容:driverClass=com.mysql.cj.jdbc.Driverurl=jdbc:mysql:///imooc_goods_cms?serverTimezone=Asia/Shanghai&characterEncoding=UTF8username=rootpassword=123456我将数据放到了本地系统中,并且启动端口是默认 3306,大家根据自己的MySQL实际配置自行修改。
inputstream相关搜索
-
inline
inner join
innerhtml
innerjoin
input
input readonly
input 属性
inputstream
inputtype
input属性
insert
insert into
insert into select
insertbefore
insertinto
insert语句
inspect
instance
instant
instr