202010-10 JAVA读取文件流,设置浏览器下载或直接预览操作 最近项目需要在浏览器中通过URL预览图片。但发现浏览器始终默认下载,而不是预览。研究了一下,发现了问题://设置response的Header,注意这句,如果开启,默认浏览器会进行下载操作,如果注释掉,浏览器会默认预览。response.addHeader("Content-Disposition","attachment;filename="+FileUtil.getOriginalFilename(path));然后需要注意:response.setContentType(contentType);//不同的文件类型,contentType不一样,比如图... 继续阅读 >
202010-10 java 中类似js encodeURIComponent 函数的实现案例 我就废话不多说了,大家还是直接看代码吧~importjava.io.UnsupportedEncodingException;importjava.net.URLDecoder;importjava.net.URLEncoder;/***UtilityclassforJavaScriptcompatibleUTF-8encodinganddecoding.**@seehttp://stackoverflow.com/questions/607176/java-equivalent-to-javascripts-encodeuricomponent-that-produces-identical-output*@authorJohnTopley*/publicclassEncodingUtil{/... 继续阅读 >
202010-10 Java并发编程——volatile关键字 一、volatile是什么volatile是Java并发编程中重要的一个关键字,被比喻为“轻量级的synchronized”,与synchronized不同的是,volatile只能修饰变量,无法修饰方法及代码块等。下面是使用volatile关键字实现的单例模式:publicclassSingletonimplementsSerializable{privatestaticvolatileSingletonsingleton;privateSingleton(){}publicstaticSingletongetSingleton(){if(singleton==null){/... 继续阅读 >
202010-10 java ThreadPool线程池的使用,线程池工具类用法说明 实际上java已经提供线程池的实现ExecutorService。为了更方便的使用和管理。这里提供一个线程池工具类,方便大家的使用。直接看看代码:使用publicstaticvoidmain(String[]args){//实例化一个固定数目的线程池。具体参考类的构造方法ThreadPoolthreadPool=newThreadPool(ThreadPool.FixedThread,5);//线程池执行线程threadPool.execute(newRunnable(){@Overridepublicvoidrun(){... 继续阅读 >
202010-10 Java fastdfs客户端实现上传下载文件 一、项目结构二、pom.xml<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>A01fastdfs</artifactId><version>1.0... 继续阅读 >
202010-10 java jackson 将对象转json时,忽略子对象的某个属性操作 我就废话不多说了,大家还是直接看代码吧~//父对象publicclassuserimplementsjava.io.Serializable{@JsonIgnoreProperties(value={"addressId"})//在解析成json时,忽略子属性的addressId字段privateAddressaddress;privateStringusername;//.........}//子对象publicclassAddressimplementsjava.io.Serializable{privateintaddressId;privateStringaddress;privateStringphone;//..........}//注:当对象是hi... 继续阅读 >
202010-10 Java后台Controller实现文件下载操作 代码参数:1.filePath:文件的绝对路径(d:\download\a.xlsx)2.fileName(a.xlsx)3.编码格式(GBK)4.response、request不介绍了,从控制器传入的http对象代码片.//控制器@RequestMapping(UrlConstants.BLACKLIST_TESTDOWNLOAD)publicvoiddownLoad(StringfilePath,HttpServletResponseresponse,HttpServletRequestrequest)throwsException{booleanis=myDownLoad("D:\\a.xlsx","a.xlsx","GBK",response,request);... 继续阅读 >
202010-10 java中下拉框select和单选按钮的回显操作 前提:<%@tagliburi="http://java.sun.com/jsp/jstl/core"prefix="c"%>1.下拉框select<selectname="departmentId"id="departmentId"><optionvalue="0">请选择部门</option><c:forEachitems="${departmentList}"var="department"><!--下拉框回显--><optionvalue="${department.id}"<c:iftest="${department.id==departmentId}">selected="selected"</c:if>>${departmen... 继续阅读 >
202010-10 java中long(Long)与int(Integer)之间的转换方式 我就废话不多说了,大家还是直接看代码吧~publicstaticvoidmain(String[]args){//1、将long型转化为int型,其中int、long是基础类型longa=10;intb=(int)a;System.out.println("1、将long型转化为int型:"+b);//2、将int型转化为long型,其中int、long都是基础类型inta1=10;longb1=a1;System.out.println("2、将int型转化为long型:"+b1);//3、将Long型转换为int型的,其中Long型是包装类型Long... 继续阅读 >
202010-10 在java中判断两个浮点型(float)数据是否相等的案例 示例代码:publicstaticvoidmain(String[]args){floata=10.222222225f;floatb=10.222222229f;System.out.println("使用==判断是否相等:"+(a==b));//超出精度范围System.out.println("使用Math.abs()判断是否相等:"+(Math.abs(a-b)>=0));System.out.println("比较a是否大于b:"+(a>b));System.out.println("比较b是否大于a:"+(a<b));}输出的结果:使用==判断是否相等:true使用Math.abs()判断... 继续阅读 >
202010-10 Java中s.charAt(index)用于提取字符串s中的特定字符操作 charAt(intindex)方法是一个能够用来检索特定索引下的字符的String实例的方法.charAt()方法返回指定索引位置的char值。索引范围为0~length()-1.如:str.charAt(0)检索str中的第一个字符,str.charAt(str.length()-1)检索最后一个字符.警告:在字符串s中越界访问字符是一种常见的程序设计错误。为避免此类错误要确保使用的下标不会超过s.length()-1.publicclasshash{publicstaticvoidmain(String[]args){//TODOAuto-g... 继续阅读 >
202010-10 java substring(a)与substring(a,b)的使用说明 功能概述:简单介绍substring(a)与substring(a,b)的使用packagecom.substring.demo;publicclasstest{/***关于substring(a)与substring(a,b)的运用**@paramargs*/publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubStringnum="0123456789";Stringab1=num.substring(2,6);Stringab2=num.substring(1,8);Stringa=num.substring(3);System.out.println("ab1的值:"+a... 继续阅读 >
202010-10 Java.toCharArray()和charAt()的效率对比分析 LeetCode中的一道算法题,使用toCharArray()时间超时,换成charAt()之后通过,所以测试一下两者的运行效率:publicstaticvoidtest(){Strings="a";for(inti=0;i<100000;i++){s+="a";}longstart1=System.currentTimeMillis();char[]cs=s.toCharArray();for(charc:cs){System.out.println(1);//需要输入语句进入循环}longend1=System.currentTimeMillis();longstart2=System.curren... 继续阅读 >
202010-10 Java 遍历 String 字符串所有字符的操作 我就废话不多说了,大家还是直接看代码吧~packagecom.app.main.utils;/***CreatedwithIDEA*author:DingshengHuang*Date:2019/6/28*Time:下午8:48*/publicclassStringUtils{publicstaticvoidmain(String[]args){Stringtest="abc123";//遍历所有字符for(inti=0;i<test.length();i++){charitem=test.charAt(i);System.out.println(String.valueOf(item));}}}运行结果:补充... 继续阅读 >
202010-10 解决java文件流处理异常 mark/reset not supported问题 原因:给定的流不支持mark和reset就会报这个错误。获取到一个网络流,这个网络流不允许读写头来回移动,也就不允许mark/reset机制.解决办法:用BufferedInputStream把原来的流包一层.BufferedInputStreambuffInputStream=newBufferedInputStream(fileInputStream);补充知识:JavaBufferedReader之mark和reset方法实践在读取文本的操作中,常常会在读取到文件末尾时重新到文件开头进行操作。通过搜索发现,有两种方法:(1)mark... 继续阅读 >
202010-10 java 流与 byte[] 的互转操作 1.InputStream->byte[]引入apache.commons.is包importorg.apache.commons.io.IOUtils;byte[]bytes=IOUtils.toByteArray(inputStream);2.byte[]->InputStreamInputStreaminputStream=newByteArrayInputStream(bytes);补充知识:byte[]与各种数据类型互相转换示例在socket开发过程中,通常需要将一些具体的值(这些值可能是各种JAVA类型)转化为byte[]类型,为此我总结了如下这个示例,贴出来,以便经常翻看publicc... 继续阅读 >