java编程思想读书笔记(java 传输 获取文件类型)
本文目录
java 传输 获取文件类型
获取文件类型,一般的是列出目前所有的文件类型,根据表头进行相应判断,示例如下:
/*** 件头是位于文件开头的一段承担一定任务的数据,一般都在开头的部分。* 头文件作为一种包含功能函数、数据接口声明的载体文件,用于保存程序的声明(declaration),而定义文件用于保存程序的实现 (implementation)。* 为了解决在用户上传文件的时候在服务器端判断文件类型的问题,故用获取文件头的方式,直接读取文件的前几个字节,来判断上传文件是否符合格式。具体代码如下:* Java代码 : * */package com.yonyou.sud.file;import java.io.FileInputStream;import java.io.IOException;import java.util.HashMap;/*** 获取和判断文件头信息** @author Sud**/public class GetTypeByHead {//缓存文件头信息-文件头信息public static final HashMap《String, String》 mFileTypes = new HashMap《String, String》();static {// imagesmFileTypes.put("FFD8FF", "jpg");mFileTypes.put("89504E47", "png");mFileTypes.put("47494638", "gif");mFileTypes.put("49492A00", "tif");mFileTypes.put("424D", "bmp");//mFileTypes.put("41433130", "dwg"); // CADmFileTypes.put("38425053", "psd");mFileTypes.put("7B5C727466", "rtf"); // 日记本mFileTypes.put("3C3F786D6C", "xml");mFileTypes.put("68746D6C3E", "html");mFileTypes.put("44656C69766572792D646174653A", "eml"); // 邮件mFileTypes.put("D0CF11E0", "doc");mFileTypes.put("5374616E64617264204A", "mdb");mFileTypes.put("252150532D41646F6265", "ps");mFileTypes.put("255044462D312E", "pdf");mFileTypes.put("504B0304", "docx");mFileTypes.put("52617221", "rar");mFileTypes.put("57415645", "wav");mFileTypes.put("41564920", "avi");mFileTypes.put("2E524D46", "rm");mFileTypes.put("000001BA", "mpg");mFileTypes.put("000001B3", "mpg");mFileTypes.put("6D6F6F76", "mov");mFileTypes.put("3026B2758E66CF11", "asf");mFileTypes.put("4D546864", "mid");mFileTypes.put("1F8B08", "gz");}/*** 根据文件路径获取文件头信息** @param filePath* 文件路径* @return 文件头信息*/public static String getFileType(String filePath){System.out.println(getFileHeader(filePath));System.out.println(mFileTypes.get(getFileHeader(filePath)));return mFileTypes.get(getFileHeader(filePath));}/*** 根据文件路径获取文件头信息** @param filePath* 文件路径* @return 文件头信息*/public static String getFileHeader(String filePath){FileInputStream is = null;String value = null;try {is = new FileInputStream(filePath);byte;/*int read() 从此输入流中读取一个数据字节。 *int read(byte b) 从此输入流中将最多 b.length 个字节的数据读入一个 byte 数组中。 * int read(byte b, int off, int len) 从此输入流中将最多 len 个字节的数据读入一个 byte 数组中。 */is.read(b, 0, b.length);value = bytesToHexString(b);} catch (Exception e){} finally {if (null != is){try {is.close();} catch (IOException e){}}}return value;}/*** 将要读取文件头信息的文件的byte数组转换成string类型表示** @param src* 要读取文件头信息的文件的byte数组* @return 文件头信息*/private static String bytesToHexString(byte src){StringBuilder builder = new StringBuilder();if (src == null || src.length 《= 0){return null;}String hv;for (int i = 0; i 《 src.length; i++){// 以十六进制(基数 16)无符号整数形式返回一个整数参数的字符串表示形式,并转换为大写hv = Integer.toHexString(src & 0xFF).toUpperCase();if (hv.length() 《 2){builder.append(0);}builder.append(hv);}System.out.println(builder.toString());return builder.toString();}public static void main(String args)throws Exception {final String fileType = getFileType("E:/Java编程思想读书笔记.docx");System.out.println(fileType);}}
java阅读程序判断整数m,n的最后值的数值与含义 我算是算了,可不知道为什么,就是编译错误郁闷的头
public class A{ public static void main(String args) { int m=0,n=0; for (int i=0; i《100; i++) { if(i%3==0) { m++; } if(i%7==0) { n++;}}System.out.print(m+" "+n); }} 还有啊,你是不是基础没有掌握好,方法很重要的。几个方法你看看,用心看。一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
JAVA语言有哪些基本的思想
您好,这样的:1、java语言的编程思想:面向对象编程,这个思想将贯穿你的整个学习过程。学习就应该踏踏实实,还有一点就是多敲代码,一个优秀的程序员代码量都是最基本的衡量标准。你初学的话,建议还是先看视频,然后在看书。多练习,就可以了。2、java学习大家公认的最好的书是《JAVA编程思想》和《JAVA核心技术》,这2本一般在大部分的高校的计算机相关的学院都会推荐,同时如果你是真正的想学java的话,这2本书会使你对javav有一个全面,系统的认识。很多java工程师即使工作后,仍然会看这2本书。所以这2本书你可以看一下,如果英语好的话,最好是看英语原版的。
更多文章:
恋爱纪念日是指哪一天?情侣之间有哪些纪念日 恋爱纪念日怎么过才有意义
2024年5月7日 18:13
vwallpaper2闪退(Wallpaper Engine出现steanm错误)
2024年6月23日 06:34
天涯明月刀银两怎么获得(天涯明月刀金钱怎么得啊,除了押镖杀人之类的,第一次押镖,安全镖被跟自己级别一样的怪杀了,根本打不过)
2024年7月15日 04:04
vista激活工具(VISTA SP2 64位 有什么激活工具可用)
2024年7月3日 09:11
bluetooth万能驱动程序(笔记本连接蓝牙耳机,显示没有为bluetooth外围设备安装驱动程序)
2024年8月20日 22:50
求一段网页中左侧导航条的代码,要求如下:?简单的网页导航条代码
2024年5月2日 05:27
语言是工具,不是玩具你怎么看?语言是交流沟通的工具,为什么中小学英语不重视口语交流考试
2024年7月24日 16:09