用Java实现获取文件类型的方法。

用Java实现获取文件类型的方法。,第1张

主要以下几种方法:

这个MimetypesFileMap类会映射出一个file的Mime Type,这些Mime Type类型是在activationjar包里面的资源文件中定义的

import javaxactivationMimetypesFileTypeMap;  

import javaioFile;  

  

class GetMimeType {  

  public static void main(String args[]) {  

    File f = new File("testgif");  

    Systemoutprintln("Mime Type of " + fgetName() + " is " +  

                         new MimetypesFileTypeMap()getContentType(f));  

    // expected output :  

    // "Mime Type of testgif is image/gif"  

  }  

}

使用 javanetURL 

警告:这个方法非常慢 

与上面所说的匹配后缀名类似。后缀名和mime-type的映射关系被定义在[jre_home]\lib\content-typesproperties这个文件中

import javanet;  

  

public class FileUtils{  

  public static String getMimeType(String fileUrl)  

    throws javaioIOException, MalformedURLException  

  {  

    String type = null;  

    URL u = new URL(fileUrl);  

    URLConnection uc = null;  

    uc = uopenConnection();  

    type = ucgetContentType();  

    return type;  

  }  

  

  public static void main(String args[]) throws Exception {  

    Systemoutprintln(FileUtilsgetMimeType("file://c:/temp/testTXT"));  

    // output :  text/plain  

  }  

}

还有一种方式:就是取文件名最后一个“”后的内容,通过人来判断如

String fileName = "aaatxt";

String fileType =“txt”//通过方法取出方法类型为

String type = "";

if( fileTyepequals("txt")){

type  = "记事本";

}else if(fileTyepequals("img")){

type  = "img";

}。。。。。

问题很简单。首先解释一下类型名。类型名是用来修饰变量或者函数返回值的。如inta=0;其中a是变量名,int是类型名,说明a这个变量的类型是int。结构名,先看下下面的一个结构定义structstudent{charname[100];};其中student就是结构名,它可以作为类型名,来修饰一个变量,如studentstu;说明stu变量的类型名是student。联合名unionperson{intage;};其中person就是联合名,它可以作为类型名,来修饰一个变量,如personper;说明per变量的类型名是person。枚举名enumReCode{ret_OK=0,};其中ReCode就是枚举名,它可以作为类型名,来修饰一个变量,如ReCodecode;说明code变量的类型名是ReCode。建议你看看书,你的基础太薄弱了,欢迎采纳!

package comloonewfweb;  

  

import orgspringframeworkbeansBeansException;  

import orgspringframeworkbeansfactoryNoSuchBeanDefinitionException;  

import orgspringframeworkcontextApplicationContext;  

import orgspringframeworkcontextApplicationContextAware;  

  

  Spring ApplicationContext 获取spring容器中的实例bean 

  @author ruilinxie 

  

 /  

public class WebContextFactoryUtil implements ApplicationContextAware  

{  

    / 

      Spring 应用上下文环境 

     /  

    private static ApplicationContext applicationContext;  

  

    / 

      实现ApplicationContextAware接口的回调方法,设置上下文环境 

       

      @param applicationContext 

      @throws BeansException 

     /  

    @SuppressWarnings("static-access")  

    public void setApplicationContext(ApplicationContext applicationContext)  

            throws BeansException  

    {  

        thisapplicationContext = applicationContext;  

    }  

  

    / 

      @return ApplicationContext 

     /  

    public static ApplicationContext getApplicationContext()  

    {  

        return applicationContext;  

    }  

  

    / 

      获取对象 

       

      @param name 

      @return Object bean的实例 

      @throws BeansException 

     /  

    public static Object getBean(String beanName) throws BeansException  

    {  

        if (!WebContextFactoryUtilcontainsBean(beanName))  

        {  

            return null;  

        } else  

        {  

            return applicationContextgetBean(beanName);  

        }  

    }  

  

    / 

      获取类型为requiredType的对象 

      如果bean不能被类型转换,相应的异常将会被抛出(BeanNotOfRequiredTypeException) 

       

      @param name 

                 bean注册名 

      @param requiredType 

                 返回对象类型 

      @return Object 返回requiredType类型对象 

      @throws BeansException 

     /  

    @SuppressWarnings({ "unchecked", "rawtypes" })  

    public static Object getBean(String name, Class requiredType)  

            throws BeansException  

    {  

        return applicationContextgetBean(name, requiredType);  

    }  

  

    / 

      如果BeanFactory包含一个与所给名称匹配的bean定义,则返回true 

       

      @param name 

      @return boolean 

     /  

    public static boolean containsBean(String name)  

    {  

        return applicationContextcontainsBean(name);  

    }  

  

    / 

      判断以给定名字注册的bean定义是一个singleton还是一个prototype。 

      如果与给定名字相应的bean定义没有被找到,将会抛出一个异常(NoSuchBeanDefinitionException) 

       

      @param name 

      @return boolean 

      @throws NoSuchBeanDefinitionException 

     /  

    public static boolean isSingleton(String name)  

            throws NoSuchBeanDefinitionException  

    {  

        return applicationContextisSingleton(name);  

    }  

  

    / 

      @param name 

      @return Class 注册对象的类型 

      @throws NoSuchBeanDefinitionException 

     /  

    @SuppressWarnings("rawtypes")  

    public static Class getType(String name)  

            throws NoSuchBeanDefinitionException  

    {  

        return applicationContextgetType(name);  

    }  

  

    / 

      如果给定的bean名字在bean定义中有别名,则返回这些别名 

       

      @param name 

      @return 

      @throws NoSuchBeanDefinitionException 

     /  

    public static String[] getAliases(String name)  

            throws NoSuchBeanDefinitionException  

    {  

        return applicationContextgetAliases(name);  

    }  

  

}

如何获取自定义类的所有属性 以及属性的类型

本帖属于CocoaChina会员发表,转帖请写明来源和帖子地址

题目有点长

直接看代码

复制代码

@interface AppState : NSObject{

BOOL _passed;

int _int;

/

状态是否正常

/

BOOL isPassed;

/

用户数据

/

NSMutableDictionary userValues;

}

@property(nonatomic ,assign) float _float;

@property(nonatomic ,assign) double _double;

@property(nonatomic ,retain) NSDate _date;

@property(nonatomic ,assign) char _char;

@property(nonatomic ,assign) int _int;;

@property(nonatomic ,assign) BOOL _passed;

@property(nonatomic ,assign) BOOL

isPassed;

我通过

#import

<objc/runtimeh>

里面的这样的方式来获取 所有的属性名 以及属性类型

复制代码

unsigned int propertyCount = 0;

objc_property_t properties = class_copyPropertyList(klass,

&propertyCount);

for (unsigned int i = 0; i < propertyCount; ++i) {

objc_property_t property = properties[i];

const char name = property_getName(property);//获取属性名字

const char attributes = property_getAttributes(property);//获取属性类型

}

具体的输出如下所示

复制代码

输出类 state T@"AppState",&,N,Vstate

正常输出

_float Tf,N,V__float

_double Td,N,V__double

_date T@"NSDate",&,N,V__date

_char

Tc,N,V__char

前面正常获得了所需的属性名称

但是后面的这个串让我怎么获取类别呢??

PS:V__date 后面是

V_属性名

以上就是关于用Java实现获取文件类型的方法。全部的内容,包括:用Java实现获取文件类型的方法。、如何在C++中获得完整的类型名称、如何通过类名取spring bean等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9763020.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存