java 的学习流程是什么
要说视频教程的话,个人觉的马士兵的教程好一点。
首先要安装Java环境,必须的,去官网下载吧,然后搞一个开发工具,这个开发工具的话,我最初是用JCreator的,这个软件比较简单,不过后来就不能满足编程的需求了,最常用的还是开源免费的Eclipse,这个工具功能比较强大。
如果你学过C语言或者C++及其他高级语言的话,学Java应该会简单点。
任何一个语言必定是先学习数据结构,大部分语言的数据结构大同小异。然后就是流程控制,这些都是面向过程的语言的一些知识,然后就是Java的面向对象的思想,和其他面向对象的高级语言也很相似,所以学过其他语言会好一点,如果你能接受理解了Java的核心思想:面向对象的话,接下来就是学习一些类和方法了,所以,基本上是,先能够学会基本的语句,然后加上类和对象的套子,然后就是各种Java自带的API了,可以先学学控制台的输入输出,图形用户界面,然后文件操作,数据库操作,网络编程,Java调用等,基本上就可以了,其实就是一些学习类的过程中慢慢体会Java语言的思想。
学习的方法呢,我觉的开始的时候多看看变人写的程序,然后粘贴在自己的程序里边能够运行成功已经很爽了,后来就是多写代码,自己动手练着。差不多就这样。
Java的学习资料,我学Java基础的时候没有看过视频教程(我的一个同学经常看马士兵的视频教程,感觉收获好多),觉的只有多媒体、办公这些可视化一点的用视频教程会好一点,编程的话,买一本Java书系统的学习一下还是很有必要的,就算有些你都很熟悉了,然后,网上的PDF也有成本的,自己去搜一下,百度文库或者新浪共享什么的,挺好的。
java 传输 获取文件类型
获取文件类型,一般的是列出目前所有的文件类型,根据表头进行相应判断,示例如下:
*件头是位于文件开头的一段承担一定任务的数据,一般都在开头的部分。
*头文件作为一种包含功能函数、数据接口声明的载体文件,用于保存程序的声明(declaration),而定义文件用于保存程序的实现(implementation)。
*为了解决在用户上传文件的时候在服务器端判断文件类型的问题,故用获取文件头的方式,直接读取文件的前几个字节,来判断上传文件是否符合格式。具体代码如下:
*Java代码:
packagecom.yonyou.sud.file;
importjava.io.FileInputStream;
importjava.io.IOException;
importjava.util.HashMap;
*获取和判断文件头信息
*@authorSud
publicclassGetTypeByHead{
//缓存文件头信息-文件头信息
publicstaticfinalHashMapmFileTypes=newHashMap();
static{
//images
mFileTypes.put("FFD8FF","jpg");
mFileTypes.put("89504E47","png");
mFileTypes.put("47494638","gif");
mFileTypes.put("49492A00","tif");
mFileTypes.put("424D","bmp");
mFileTypes.put("41433130","dwg");//CAD
mFileTypes.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");
*根据文件路径获取文件头信息
*@paramfilePath
*文件路径
*@return文件头信息
publicstaticStringgetFileType(StringfilePath){
System.out.println(getFileHeader(filePath));
System.out.println(mFileTypes.get(getFileHeader(filePath)));
returnmFileTypes.get(getFileHeader(filePath));
*根据文件路径获取文件头信息
*@paramfilePath
*文件路径
*@return文件头信息
publicstaticStringgetFileHeader(StringfilePath){
FileInputStreamis=null;
Stringvalue=null;
is=newFileInputStream(filePath);
byte[]b=newbyte[4];
/*intread()从此输入流中读取一个数据字节。
*intread(byte[]b)从此输入流中将最多b.length个字节的数据读入一个byte数组中。
*intread(byte[]b,intoff,intlen)从此输入流中将最多len个字节的数据读入一个byte数组中。
is.read(b,0,b.length);
value=bytesToHexString(b);
}catch(Exceptione){
}finally{
if(null!=is){
is.close();
}catch(IOExceptione){
returnvalue;
*将要读取文件头信息的文件的byte数组转换成string类型表示
*@paramsrc
*要读取文件头信息的文件的byte数组
*@return文件头信息
privatestaticStringbytesToHexString(byte[]src){
StringBuilderbuilder=newStringBuilder();
if(src==null||src.length<=0){
returnnull;
Stringhv;
for(inti=0;i
//以十六进制(基数16)无符号整数形式返回一个整数参数的字符串表示形式,并转换为大写
hv=Integer.toHexString(src[i]&0xFF).toUpperCase();
if(hv.length()<2){
builder.append(0);
builder.append(hv);
System.out.println(builder.toString());
returnbuilder.toString();
publicstaticvoidmain(String[]args)throwsException{
finalStringfileType=getFileType("E:/Java编程思想读书笔记.docx");
System.out.println(fileType);