java对文件名的几个操作,获取文件扩展名,去掉扩展名
- 格式:doc
- 大小:27.50 KB
- 文档页数:2
java获取文件后缀名的方法Java获取文件后缀名的方法是指在Java中如何解析文件名,提取出其文件后缀名。
文件后缀名(或扩展名)是指文件名中最右边一部分,它通常表示文件的类型。
获取文件后缀名的最简单方法就是利用java.io.File类提供的getName()方法对文件名进行解析。
getName()方法可以将文件名分割成不同的部分,并返回最后一部分,也就是文件的后缀名。
下面举例说明:String fileName = "HelloWorld.java";// 通过新建一个File对象来获取文件名File file = new File(fileName);// 调用getName()方法来获取文件的后缀名String suffix = file.getName();// 截取字符串,从最后一个 . 的位置开始,截取到末尾String suffix = suffix.substring(stIndexOf(".") + 1); System.out.println("文件后缀名是:"+suffix);运行结果:文件后缀名是:java不仅如此,还可以通过使用 String 的 split() 方法来获取文件的后缀名。
split() 方法可以根据给定的分隔符将字符串分割成多个部分,比如我们可以使用"."作为分隔符。
下面举例说明:String fileName = "HelloWorld.java";// 根据 . 来将字符串分割成多个部分String[] parts = fileName.split("\\.");// 获取最后一个部分,即文件的后缀名String suffix = parts[parts.length-1];System.out.println("文件后缀名是:"+suffix);运行结果:文件后缀名是:java上述提到两种方法在获取文件后缀名时都是有效的,但具体应该使用哪一种方法,还要根据实际情况进行斟酌。
VBA中的文件路径与文件名操作技巧VBA(Visual Basic for Applications)是一种广泛用于Microsoft Office应用程序中的编程语言。
在VBA中,文件路径和文件名操作是常见的需求,因为几乎所有的应用程序都需要与文件进行交互。
本文将介绍一些VBA中的文件路径和文件名操作技巧,帮助你更好地处理文件。
1. 获取文件路径获取文件路径是一个常见的需求,通常是为了打开文件、保存文件或对文件进行操作。
在VBA中,你可以使用FileSystemObject对象的GetAbsolutePathName方法来获取文件的绝对路径。
以下是一个示例代码:```Dim fso As ObjectSet fso = CreateObject("Scripting.FileSystemObject")Dim filePath As StringfilePath = fso.GetAbsolutePathName("filename.extension")```在这个示例代码中,你需要将"filename.extension"替换为你要操作的文件名和扩展名。
执行该代码后,`filePath`变量将保存文件的绝对路径。
另外,如果你想获取当前正在运行的VBA代码文件的路径,可以使用`ThisWorkbook.Path`方法。
这个方法提供了当前工作簿(Workbook)所在的目录路径。
2. 获取文件名获取文件名是另一个常见需求,有时你需要从文件路径中提取文件名。
VBA 提供了几种方法来获取文件名。
下面是两种常用的方法:方法一:使用FileSystemObject对象的GetFileName方法。
以下是一个示例代码:```Dim fso As ObjectSet fso = CreateObject("Scripting.FileSystemObject")Dim fileName As StringfileName = fso.GetFileName("C:\Folder\filename.extension")```在这个示例代码中,你需要将"C:\Folder\filename.extension"替换为你要操作的文件的绝对路径。
python中获取文件扩展名的技巧在Python中,获取文件扩展名是一项常见而且有用的任务。
文件扩展名通常指的是文件名中最后一个点后面的部分,用于标识文件的类型或格式。
本文将探讨几种获取文件扩展名的技巧,以帮助你在Python中处理文件操作。
1. 使用split()函数获取文件扩展名的一种简单方法是使用Python的内置函数split()。
该函数可以将一个字符串根据指定的分隔符拆分成多个部分,并返回一个列表。
我们可以使用"."作为分隔符,将文件名拆分为名称和扩展名两部分。
以下是示例代码:```pythonfilename = "example.py"ext = filename.split(".")[-1]print(ext)```在上面的代码中,我们将文件名"example.py"传递给split()函数,并使用"."作为分隔符。
我们使用负索引[-1]来获取拆分结果的最后一个元素,即文件的扩展名。
我们将扩展名打印出来,结果为"py"。
这种方法简单易懂,适用于大多数情况。
然而,它假设文件名中只有一个点,并且扩展名在最后一个点后面。
如果文件名中有多个点,或者扩展名位于倒数第二个点后面,这种方法可能会出现问题。
2. 使用os模块的splitext()函数os模块是Python中用于与操作系统交互的标准库之一。
该模块提供了各种文件和目录操作的函数,包括获取文件扩展名的功能。
其中,splitext()函数可以将文件名拆分为文件名和扩展名两部分,并以元组的形式返回。
以下是示例代码:```pythonimport osfilename = "example.py"name, ext = os.path.splitext(filename)print(ext)```在上面的代码中,我们导入了os模块,并使用splitext()函数将文件名"example.py"拆分为名称和扩展名两部分。
一、filename函数的介绍在R语言中,filename函数是用于处理文件路径和文件名的函数,它可以帮助用户轻松地获取和处理文件的名称和路径信息。
通过filename函数,用户可以很方便地对文件进行操作,包括获取文件名、获取文件路径、拼接文件名和路径等操作。
下面我们将详细介绍filename函数的用法。
二、filename函数的基本用法1. 获取文件名在R语言中,用户可以使用filename函数来获取文件的名称。
通过以下代码可以获取文件"test.txt"的文件名:```Rlibrary(tools)file_name <- filename("path/test.txt")print(file_name)```2. 获取文件路径除了获取文件名,filename函数还可以用于获取文件的路径信息。
用户可以借助filename函数获取文件所在的路径,如下所示:```Rfile_path <- dirname("path/test.txt")print(file_path)```3. 拼接文件名和路径有时候用户需要将文件名和路径进行拼接,filename函数也可以满足这一需求。
用户可以使用filename函数将文件名和路径拼接在一起,如下所示:```Rlibrary(tools)file_full_path <- file.path("path", "test.txt")print(file_full_path)```三、filename函数的高级用法1. 获取文件扩展名除了基本的文件名和路径信息,用户还可以通过filename函数轻松地获取文件的扩展名。
通过以下代码,用户可以获取文件"test.txt"的扩展名:```Rfile_extension <- file_ext("path/test.txt")print(file_extension)```2. 文件名和路径的拆分有时候用户需要将文件路径和文件名进行拆分,filename函数也可以帮助用户实现这一操作。
VBA中的文件格式转换与批量处理指南在日常的工作中,我们经常需要处理各种不同格式的文件,而手动逐个转换和处理文件是一项耗时且复杂的任务。
然而,使用VBA(Visual Basic for Applications)可以极大地简化这个过程,使我们能够快速、准确地转换和处理大量的文件。
本文将指导您如何使用VBA进行文件格式转换和批量处理,帮助您提高工作效率并节省宝贵的时间。
一、文件格式转换1. 文件格式识别在进行文件格式转换前,首先需要识别待处理文件的格式。
通过VBA的文件对象,我们可以获取文件的扩展名,并根据扩展名判断文件的格式。
例如,对于Excel文件,扩展名为".xls"或".xlsx";对于Word文件,扩展名为".doc"或".docx"等。
2. 文件格式转换有了文件的格式识别后,我们可以利用VBA的文件对象和相关的应用程序对象进行格式转换。
例如,使用Excel应用程序对象打开一个文本文件,然后将其另存为.xlsx格式。
以下是一个基本的文件格式转换的示例:```vbaSub ConvertFileFormat(sourcePath As String, targetPath As String)Dim objExcel As ObjectSet objExcel = CreateObject("Excel.Application")Dim objWorkbook As ObjectSet objWorkbook = objExcel.Workbooks.Open(sourcePath)objWorkbook.SaveAs targetPath, objExcel.xlOpenXMLWorkbookobjWorkbook.CloseobjExcel.QuitSet objWorkbook = NothingSet objExcel = NothingEnd Sub```上述示例代码中,我们使用了Excel应用程序对象打开了源文件,然后将其另存为目标文件。
java从文本中提取关键内容的方法文章标题:探讨Java从文本中提取关键内容的方法在信息爆炸的时代,我们每天都会接触和处理各种各样的文本信息。
有时候我们需要从这些文本中提取出某些关键内容,比如关键词、关键短语或者其他有用的信息。
在计算机编程领域中,Java作为一种常用的编程语言,提供了多种方法来实现文本信息的提取和处理。
在本文中,我们将深入探讨Java从文本中提取关键内容的方法,希望能为读者提供一些有价值的见解和思路。
一、正则表达式在Java中,正则表达式是一种强大的文本处理工具,它可以帮助我们从文本中匹配和提取出特定的内容。
通过使用正则表达式,我们可以实现对文本中的关键词、关键短语等内容进行精确的提取。
我们可以使用正则表达式来匹配文本中的电子通信位置区域、通信方式号码、URL连接等特定格式的内容,从而实现信息的提取和处理。
在实际应用中,我们可以借助Java中的Pattern和Matcher类来实现对文本的匹配和提取,从而实现对关键内容的提取和处理。
二、字符串操作除了正则表达式外,Java中的字符串操作也是一种常用的文本处理方法。
通过使用字符串的相关方法,比如indexOf、substring等,我们可以实现对文本中关键内容的定位和提取。
如果我们需要从文本中提取某个关键词,我们可以通过字符串的indexOf方法定位该关键词在文本中的位置,然后再通过substring方法来提取出该关键词所在的内容。
这种方法虽然相对简单,但在某些场景下也是非常有效的。
结合字符串的split方法,我们还可以实现对文本内容的分割和提取,从而进一步实现对关键内容的提取和处理。
三、自然语言处理除了上述方法外,Java还提供了一些强大的自然语言处理工具,比如HanLP、Stanford NLP等。
通过使用这些工具,我们可以实现对文本内容的分词、词性标注、命名实体识别等功能,从而更精确地实现对文本中关键内容的提取。
我们可以使用HanLP对中文文本进行分词,然后通过词性标注和命名实体识别,来提取出文本中的关键词和短语,实现对文本内容的深度提取和分析。
VBA中文件操作与路径处理的方法与技巧VBA(Visual Basic for Applications)是一种基于微软的Visual Basic编程语言,用于在Microsoft Office系列软件中编写宏。
在VBA中,文件操作和路径处理是非常常见的任务,特别是在处理大量数据、自动化报告生成和数据导入导出等方面。
本文将介绍一些常用的VBA文件操作和路径处理的方法与技巧。
一、文件操作1. 打开文件:在VBA中,可以使用Workbooks.Open方法打开Excel文件,而使用FileSystemObject对象打开其他类型的文件。
以下是一个打开Excel文件的示例代码:```vbaDim wb As WorkbookSet wb = Workbooks.Open("C:\Documents\Workbook.xlsx") ```2. 保存文件:使用Workbook对象的Save方法可以保存Excel文件。
以下是一个保存文件的示例代码:```vbawb.Save```3. 关闭文件:通过Workbook对象的Close方法可以关闭已打开的Excel 文件。
以下是一个关闭文件的示例代码:```vbawb.Close```4. 复制文件:VBA提供了FileSystemObject对象的CopyFile方法用于复制文件。
以下是一个复制文件的示例代码:```vbaDim fso As ObjectSet fso = CreateObject("Scripting.FileSystemObject")fso.CopyFile "C:\Documents\OldFile.txt","C:\Documents\NewFile.txt", True```5. 删除文件:使用FileSystemObject对象的DeleteFile方法可以删除文件。
java获取文件内容的方法【实用版4篇】篇1 目录I.获取文件内容的方法概述II.使用Scanner类读取文件内容III.使用BufferedReader类读取文件内容IV.使用FileInputStream类读取文件内容V.使用FileChannel类读取文件内容篇1正文Java中获取文件内容的方法有很多种,下面介绍几种常用的方法:1.使用Scanner类读取文件内容Scanner类是Java中常用的类之一,它可以帮助我们方便地读取文件内容。
具体实现方法如下:```javatry (Scanner scanner = new Scanner(new File("filename.txt"))) {while (scanner.hasNextLine()) {String line = scanner.nextLine();// 处理每一行内容}} catch (FileNotFoundException e) {e.printStackTrace();}```2.使用BufferedReader类读取文件内容BufferedReader类可以帮助我们快速读取文件内容,它可以读取文本文件、CSV文件等。
具体实现方法如下:```javatry (BufferedReader reader = new BufferedReader(new FileReader("filename.txt"))) {String line;while ((line = reader.readLine()) != null) {// 处理每一行内容}} catch (IOException e) {e.printStackTrace();}```3.使用FileInputStream类读取文件内容FileInputStream类可以帮助我们读取二进制文件,它可以读取图片、音频、视频等文件。
Java不带后缀获取文件的方法1.引言在J av a编程中,我们经常需要对文件进行操作,其中一个常见的需求是获取文件的名称。
而有时候我们希望获取文件的名称时,不包括文件的后缀名。
本文将介绍一种简单的方法,让您轻松地获取J ava中不带后缀名的文件名称。
2.获取文件名的方法J a va提供了F il e类来操作文件和目录,该类有一个`g et Na m e()`方法可以获取文件名。
然而,该方法返回的是包括文件后缀在内的完整文件名。
为了获取不带后缀的文件名,我们需要采取一些额外的步骤。
以下是获取不带后缀名的文件名称的步骤:1.创建一个Fi le对象,用于表示要操作的文件。
2.使用`g et Na me()`方法获取文件名。
3.使用St ri ng类的`l as tI nd ex Of()`方法找到文件名中最后一个点(".")的位置。
4.使用St ri ng类的`s ub st ri ng()`方法截取文件名,从起始位置到最后一个点的位置,即可得到不带后缀的文件名。
下面是一个示例代码,展示如何使用这个方法来获取不带后缀的文件名:i m po rt ja va.i o.Fil e;p u bl ic cl as sF il eNa m eE xa mp le{p u bl ic st at ic vo idm a in(S tr in g[]a rgs){F i le fi le=n ew Fi le("pa th/t o/yo ur/fi l e.tx t");S t ri ng fi le Na me Wit h Ex te ns io n=fi le.g et Na me();S t ri ng fi le Na me Wit h ou tE xt en si on=fi l eN am eW it hE xt ens i on.s u b s tr in g(0,fi le Nam e Wi th Ex te ns io n.l a st In de xO f("."));S y st em.o ut.p ri ntl n("文件名(带后缀):"+fi le Na me Wi th Ext e ns io n);S y st em.o ut.p ri ntl n("文件名(不带后缀):"+fi le Na me Wi th out E xt en si on);}}通过运行上述代码,您将得到如下输出结果:文件名(带后缀):f i le.t xt文件名(不带后缀):f il e3.注意事项在使用上述方法时,需要注意以下几点:-如果文件名中没有点("."),则方法`l as tI nd ex Of()`将返回-1。
VBA编程中的文件路径操作技巧与实践经验VBA(Visual Basic for Applications)是一种用于Office应用程序的编程语言,它可以让用户自定义功能和自动化任务。
在VBA编程中,文件路径操作是非常重要且常见的任务之一。
本文将介绍一些VBA编程中的文件路径操作技巧和实践经验,帮助读者更有效地处理文件路径。
1. 获取当前工作路径在VBA编程中,获取当前工作路径是很有用的操作。
可以使用VBA的`CurDir`函数来获取当前工作路径。
该函数返回一个字符串,表示当前工作路径。
```vbaDim currentPath As StringcurrentPath = CurDir```2. 获取文件路径有时候我们需要获取一个文件的路径,可以使用`Application.GetOpenFilename`或`Application.GetSaveAsFilename`函数获取文件路径。
`GetOpenFilename`函数将打开文件对话框,用户可以选择一个文件并返回其路径。
`GetSaveAsFilename`函数将打开保存文件对话框,用户可以指定文件名和路径并返回路径。
Dim filePath As StringfilePath = Application.GetOpenFilename```3. 拼接路径在VBA编程中,拼接路径是常见的操作。
可以使用`&`操作符将两个字符串拼接起来,构成新的路径。
```vbaDim folderPath As StringDim fileName As StringDim fullPath As StringfolderPath = "C:\Path\to\Folder\"fileName = "file.txt"fullPath = folderPath & fileName```4. 判断路径是否存在在VBA编程中,有时候需要判断一个文件或文件夹是否存在。
java通过字节流获取后缀的方法1.引言1.1 概述概述部分旨在介绍本篇文章的主题和内容。
本文将探讨在Java编程中,通过字节流获取文件后缀的方法。
随着互联网的发展,文件的处理和管理已成为我们日常工作中的常见操作之一。
在Java编程中,有时候我们需要获取文件的后缀名来进行相应的处理,例如文件的读写、分类和筛选等。
而通过字节流的方式获取文件后缀,是一种相对高效且常用的方法。
在接下来的正文部分,我们将针对字节流获取文件后缀的方法进行详细的介绍和讨论。
首先,我们将介绍一种常见的方法一,其通过读取文件的字节并解析文件的魔数来获取后缀名。
接着,我们将介绍另一种方法二,该方法通过解析文件的扩展名来获取后缀。
在结论部分,我们将对两种方法进行总结,并进行结果分析。
通过对比两种方法的优缺点,我们将为读者提供选择合适的方式来获取文件后缀的参考。
本文的目的是帮助读者了解和掌握通过字节流获取文件后缀的方法,使他们在实际的Java编程中能够更便捷、高效地处理文件操作。
1.2 文章结构本文主要介绍了在Java中通过字节流获取文件后缀的方法。
文章分为引言、正文、结论三个部分。
在引言部分,我们将对本文的内容进行概述,介绍文章的结构和目的。
正文部分主要介绍了两种方法来实现通过字节流获取文件后缀的功能。
其中,第一种方法是通过读取文件的字节流来获取文件的后缀信息。
我们将详细讲解如何使用Java的字节流读取文件,并通过一些代码示例来说明该方法的使用。
第二种方法是通过使用Java的文件处理类库来获取文件后缀信息。
我们将介绍如何使用常用的文件处理类库,以及它们提供的方法来获取文件后缀信息。
通过比较这两种方法的优缺点,读者可以选择适合自己需求的方式来实现。
在结论部分,我们将对本文的内容进行总结,并对两种方法的使用场景进行分析和讨论。
我们还将提供一些关于如何根据具体需求选择适合的方法的建议。
整个文章结构清晰明了,层次分明,方便读者理解和参考。
如何处理代码中的文件路径问题在代码中,经常需要处理文件路径,包括读取文件、写入文件、移动文件、复制文件等操作。
然而,由于不同操作系统对文件路径的表示方法存在差异,如果不处理好文件路径问题,可能会导致程序在不同环境下无法正常运行。
为了解决这个问题,我们需要在代码中正确处理文件路径。
以下是一些常见的处理文件路径问题的方法:1.使用相对路径:相对路径是相对于当前工作目录的路径表示方法。
当前工作目录通常是指执行代码的目录。
使用相对路径可以避免因为绝对路径在不同系统中的表示不同而导致的问题。
例如在Linux系统中,绝对路径以斜杠“/”开头,但在Windows系统中,绝对路径以盘符开头且使用反斜杠“\”。
使用相对路径可以让程序更加灵活,适应不同的操作系统。
2.使用os.path模块:os.path模块是Python中用于处理文件路径的标准库。
它提供了一系列函数,可以用于获取文件路径的属性、拼接路径、判断路径是否存在等操作。
使用os.path模块可以保证代码在不同操作系统中的可移植性。
例如,使用os.path.join()函数可以拼接路径,使用os.path.exists()函数可以判断路径是否存在。
3.使用os.sep和os.path.sep:os.sep和os.path.sep是Python中用于表示路径分隔符的变量。
它们会根据当前操作系统的不同而自动选择相应的分隔符。
在拼接路径时,使用os.sep或os.path.sep保证路径的可移植性。
例如,可以使用os.sep.join()函数将多个目录拼接成路径。
4.使用os.getcwd()和os.chdir():os.getcwd()函数用于获取当前工作目录。
如果要读取或写入文件,可以使用os.getcwd()函数获取当前工作目录,然后再拼接上相对路径,这样可以保证文件的正确访问。
os.chdir()函数用于改变当前工作目录。
在处理文件路径时,如果需要更改当前工作目录,可以使用os.chdir()函数切换工作目录,然后再进行文件操作。
python中获取文件后缀名的方法Python中获取文件后缀名的方法文件后缀名是指文件名中最后一个点号(.)之后的部分,例如.txt、.jpg、.py等。
在Python中,获取文件后缀名是一项常见的操作,下面将介绍多种方法来实现这一功能。
方法一:使用split()函数split()函数可以将字符串按照指定字符分割成列表,通过取列表最后一个元素即可得到文件后缀名。
示例代码:```filename = "test.txt"suffix = filename.split(".")[-1]print(suffix)```输出结果为:```txt```方法二:使用os.path模块os.path模块提供了许多与路径相关的函数和变量,其中包括获取文件名、目录、扩展名等信息的函数。
示例代码:```import osfilename = "test.txt"suffix = os.path.splitext(filename)[-1]print(suffix)```输出结果为:```.txt需要注意的是,os.path.splitext()函数返回的结果包括点号,如果只需要得到扩展名部分,则可以使用切片操作去掉点号。
方法三:使用re模块re模块是Python中用于正则表达式操作的标准库。
通过正则表达式匹配获取文件后缀名也是一种可行的方法。
示例代码:```import refilename = "test.txt"suffix = re.findall("\.\w+", filename)[-1]print(suffix)```输出结果为:```.txt需要注意的是,正则表达式中的点号需要转义,\w+表示匹配一个或多个字母数字字符。
方法四:使用pathlib模块pathlib模块是Python 3.4引入的新模块,提供了一种更加面向对象的路径操作方式。
Java 解解解解解解解(解解解)解解解解解本文主要介绍Java中解析获取文件扩展名(后缀名)的几种方法。
1、使用FilenameUtils.getExtension来获取扩展名maven配置:<dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.4</version></dependency>String ext1 = FilenameUtils.getExtension("/path/to/file/foo.txt"); //returns "txt" String ext2 = FilenameUtils.getExtension("bar.exe"); //returns "exe"文档:...2、通过使用lastIndexOf和substring方法来得到扩展名String extension = "";int i = stIndexOf('.');if (i > 0) {extension = fileName.substring(i+1);}或String extension = "";int i = stIndexOf('.');int p = Math.max(stIndexOf('/'), stIndexOf('\\'));if (i > p) {extension = fileName.substring(i+1);}3、使用Guava库的Files工具类获取扩展名maven配置:<dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>17.0</version></dependency>String path = "c:/path/to/file/foo.txt";String ext = Files.getFileExtension(path);System.out.println(ext); //prints txt文档:...4、Android上可以使用的方法String ext = android.webkit.MimeTypeMap.getFileExtensionFromUrl(file.getName());5、经过测试的getExtension获取扩展名方法public static String getExtension(String fileName) {char ch;int len;if(fileName==null ||(len = fileName.length())==0 ||(ch = fileName.charAt(len-1))=='/' || ch=='\\' || //in the case of a directorych=='.' ) //in the case of . or ..return "";int dotInd = stIndexOf('.'),sepInd = Math.max(stIndexOf('/'), stIndexOf('\\'));if( dotInd<=sepInd )return "";elsereturn fileName.substring(dotInd+1).toLowerCase();}测试用例@Testpublic void testGetExtension() {assertEquals("", getExtension("C"));assertEquals("ext", getExtension("C.ext"));assertEquals("ext", getExtension("A/B/C.ext"));assertEquals("", getExtension("A/B/C.ext/"));assertEquals("", getExtension("A/B/C.ext/.."));assertEquals("bin", getExtension("A/B/C.bin"));assertEquals("hidden", getExtension(".hidden"));assertEquals("dsstore", getExtension("/user/home/.dsstore"));assertEquals("", getExtension(".strange."));assertEquals("3", getExtension("1.2.3"));assertEquals("exe", getExtension("C:\\Program Files (x86)\\java\\bin\\javaw.exe")); }6、使用split方法来获取后缀名String[] split = fullFileName.split("\\.");String ext = split[split.length - 1];。
java获取文件后缀名的方法在日常开发中,我们经常会遇到需要获取文件后缀名的情况,比如需要判断文件的类型、文件的传输大小等,这都需要获取文件的后缀名。
java提供了一些简单的方法来获取文件后缀名,下面就给大家介绍一下java获取文件后缀名的方法。
首先,我们要知道,文件后缀名就是文件扩展名,它是文件的一个标识,可以用来表明文件的格式,我们可以使用Java的String类中的substring()方法来获取文件的扩展名,具体的方法如下://获取文件后缀名String fileName = "example.txt"; //这是一个文件名//获取文件后缀名String suffix = fileName.substring(stIndexOf(".") + 1);System.out.println("文件的后缀名是:" + suffix);另外,我们还可以使用Java的File类中的getName()方法来获取文件的文件名,然后再使用substring()方法来截取文件后缀名,具体的方法如下://获取文件后缀名File file = new File("example.txt");//获取文件后缀名String suffix = file.getName().substring(file.getName().lastIndexOf(".") + 1);System.out.println("文件的后缀名是:" + suffix);最后,我们还可以使用Java的Path类中的getFileName()方法来获取文件的文件名,然后再使用substring()方法来截取文件后缀名,具体的方法如下://获取文件后缀名Path path = Paths.get("example.txt");//获取文件后缀名String suffix = path.getFileName().toString().substring(path.getFileName().toString( ).lastIndexOf(".") + 1);System.out.println("文件的后缀名是:" + suffix);以上就是java获取文件后缀名的三种方法,由于每个文件的格式都是不同的,所以要根据自己的需求进行选择最合适的方法。
Java获取⽂件的类型转⾃:在web应⽤中经常需要进⾏上传的操作,从安全的⾓度考虑,这个功能⼀般是需要限制⽂件的类型的!通过扩展名获取⽂件类型是⼀种很不靠谱的⽅式。
下⾯介绍⼀种较⽂件扩展名来说可信度更⼤的⽅式——⽂件头信息内容判断!package com.wzwahl36.up.file;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStream;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Map.Entry;/*** ⽂件操作的⼀个类,包括⽂件的类型获取,⽂件、⽂件夹操作等** @author Xewee.Zhiwei.Wang* @version 2011-9-18 下午12:34:26*/public class FileUtils {public final static Map<String, String> FILE_TYPE_MAP = new HashMap<String, String>();static {getAllFileType(); // 初始化⽂件类型信息}/*** 将常见⽂件类型放⼊到map中** @author Xewee.Zhiwei.Wang* @version 2011-9-18 下午12:35:22*/private static void getAllFileType() {FILE_TYPE_MAP.put("jpg", "FFD8FF"); // JPEG (jpg)FILE_TYPE_MAP.put("png", "89504E47"); // PNG (png)FILE_TYPE_MAP.put("gif", "47494638"); // GIF (gif)FILE_TYPE_MAP.put("tif", "49492A00"); // TIFF (tif)FILE_TYPE_MAP.put("bmp", "424D"); // Windows Bitmap (bmp)FILE_TYPE_MAP.put("dwg", "41433130"); // CAD (dwg)FILE_TYPE_MAP.put("html", "68746D6C3E"); // HTML (html)FILE_TYPE_MAP.put("rtf", "7B5C727466"); // Rich Text Format (rtf)FILE_TYPE_MAP.put("xml", "3C3F786D6C");FILE_TYPE_MAP.put("zip", "504B0304");FILE_TYPE_MAP.put("rar", "52617221");FILE_TYPE_MAP.put("psd", "38425053"); // Photoshop (psd)FILE_TYPE_MAP.put("eml", "44656C69766572792D646174653A"); // EmailFILE_TYPE_MAP.put("dbx", "CFAD12FEC5FD746F"); // Outlook Express (dbx)FILE_TYPE_MAP.put("pst", "2142444E"); // Outlook (pst)FILE_TYPE_MAP.put("xls", "D0CF11E0"); // MS WordFILE_TYPE_MAP.put("doc", "D0CF11E0"); // MS Excel 注意:word 和 excel的⽂件头⼀样FILE_TYPE_MAP.put("mdb", "5374616E64617264204A"); // MS Access (mdb)FILE_TYPE_MAP.put("wpd", "FF575043"); // WordPerfect (wpd)FILE_TYPE_MAP.put("eps", "252150532D41646F6265");FILE_TYPE_MAP.put("ps", "252150532D41646F6265");FILE_TYPE_MAP.put("pdf", "255044462D312E"); // Adobe Acrobat (pdf)FILE_TYPE_MAP.put("qdf", "AC9EBD8F"); // Quicken (qdf)FILE_TYPE_MAP.put("pwl", "E3828596"); // Windows Password (pwl)FILE_TYPE_MAP.put("wav", "57415645"); // Wave (wav)FILE_TYPE_MAP.put("avi", "41564920");FILE_TYPE_MAP.put("ram", "2E7261FD"); // Real Audio (ram)FILE_TYPE_MAP.put("rm", "2E524D46"); // Real Media (rm)FILE_TYPE_MAP.put("mpg", "000001BA"); //FILE_TYPE_MAP.put("mov", "6D6F6F76"); // Quicktime (mov)FILE_TYPE_MAP.put("asf", "3026B2758E66CF11"); // Windows Media (asf)FILE_TYPE_MAP.put("mid", "4D546864"); // MIDI (mid)}// /**// * 获取图⽚⽂件实际类型,若不是图⽚则返回null]// *// * @author Xewee.Zhiwei.Wang// * @version 2011-9-18 下午12:35:59// * @param f// * @return// */// public final static String getImageFileType(File f) {// if (isImage(f)) {// try {// ImageInputStream iis = ImageIO.createImageInputStream(f); // Iterator<ImageReader> iter = ImageIO.getImageReaders(iis); // if (!iter.hasNext()) {// return null;// }// ImageReader reader = iter.next();// iis.close();// return reader.getFormatName();// } catch (IOException e) {// return null;// } catch (Exception e) {// return null;// }// }// return null;// }/*** 获取⽂件类型,包括图⽚,若格式不是已配置的,则返回null** @author Xewee.Zhiwei.Wang* @version 2011-9-18 下午12:36:32* @param file* @return*/public static String getFileTypeByFile(File file) {String filetype = null;byte[] b = new byte[50];try {InputStream is = new FileInputStream(file);is.read(b);filetype = getFileTypeByStream(b);is.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}return filetype;}/*** 通过字节流获得⽂件类型** @author Xewee.Zhiwei.Wang* @version 2011-9-18 下午12:37:03* @param b* @return*/public static String getFileTypeByStream(byte[] b) {String filetypeHex = String.valueOf(getFileHexString(b));Iterator<Entry<String, String>> entryiterator = FILE_TYPE_MAP .entrySet().iterator();while (entryiterator.hasNext()) {Entry<String, String> entry = entryiterator.next();String fileTypeHexValue = entry.getValue();if (filetypeHex.toUpperCase().startsWith(fileTypeHexValue)) {return entry.getKey();}}return null;}// /**// * 判断⽂件是不是图⽚// *// * @author Xewee.Zhiwei.Wang// * @version 2011-9-18 下午12:37:54// * @param file// * @return// */// public static final boolean isImage(File file) {// boolean flag = false;// try {// BufferedImage bufreader = ImageIO.read(file);// int width = bufreader.getWidth();// int height = bufreader.getHeight();// if (width == 0 || height == 0) {// flag = false;// }// else {// flag = true;// }// } catch (IOException e) {// flag = false;// } catch (Exception e) {// flag = false;// }// return flag;// }/*** 获得⽂件的16进制数据** @author Xewee.Zhiwei.Wang* @version 2011-9-18 下午12:38:26* @param b* @return*/public static String getFileHexString(byte[] b) {StringBuilder stringBuilder = new StringBuilder();if (b == null || b.length <= 0) {return null;}for (int i = 0; i < b.length; i++) {int v = b[i] & 0xFF;String hv = Integer.toHexString(v);if (hv.length() < 2) {stringBuilder.append(0);}stringBuilder.append(hv);}return stringBuilder.toString();}/*** 删除path(该path可能是⽂件也可能是⽂件夹)** @author Xewee.Zhiwei.Wang* @version 2011-9-18 下午12:49:15* @param file 要删除的⽂件或者⽬录* @param includeSubFile 如果被删出的是⽬录,是否循环删除该⽬录中的⼦⽬录 * @return操作是否成功*/public final boolean deleteFile(File file, boolean includeSubFile) {if (! file.exists()) {return false;}if (file.isFile()) {System.out.println("del file:" + file.toString());return file.delete();}else if (file.isDirectory()) {File[] fileList = file.listFiles();if (includeSubFile) {for (int i = 0; i < fileList.length; i++) {deleteFile(fileList[i], includeSubFile);}}else {for (int i = 0; i < fileList.length; i++) {if (fileList[i].isFile()) {deleteFile(fileList[i], includeSubFile);}}}}return true;}/*** 删除path(该path可能是⽂件也可能是⽂件夹)** @author Xewee.Zhiwei.Wang* @version 2011-9-18 下午12:49:15* @param path 要删除的⽂件或者⽬录* @param includeSubFile 如果被删出的是⽬录,是否循环删除该⽬录中的⼦⽬录 * @return操作是否成功*/public final boolean deleteFile(String path, boolean includeSubFile) {return deleteFile(new File(path), includeSubFile);}/*** 赋值⽂件scrFile到⽬地⽬录destFolder* @author Xewee.Zhiwei.Wang* @version 2011-9-18 下午12:48:34** @param scrFile 源⽂件,可能是⽂件,可能是⽬录* @param destFolder ⽬地⽂件,只能是⽬录* @param includeSubFile 如果源⽂件是⽬录,是否循环复制源⽂件的⼦⽬录* @return操作是否成功* @return*/public final boolean copyFile(File scrFile, File destFolder, boolean includeSubFile) {//未实现return true;}/*** 赋值⽂件scrFile到⽬地⽬录destFolder* @author Xewee.Zhiwei.Wang* @version 2011-9-18 下午12:48:34** @param scrFile 源⽂件,可能是⽂件,可能是⽬录* @param destFolder ⽬地⽂件,只能是⽬录* @param includeSubFile 如果源⽂件是⽬录,是否循环复制源⽂件的⼦⽬录* @return操作是否成功* @return*/public final boolean copyFile(String scrFile, String destFolder, boolean includeSubFile) { //未实现return copyFile(new File(scrFile), new File(destFolder), includeSubFile);}/*** 创建⽂件或者⽬录* @author Xewee.Zhiwei.Wang* @version 2011-9-18 下午12:48:15* @param file* @return*/public final boolean createFile(File file) {try {if (file.isDirectory()) {return file.mkdirs();}else {return file.createNewFile();}} catch (IOException e) {return false;}}/*** 创建⽂件或者⽬录** @author Xewee.Zhiwei.Wang* @version 2011-9-18 下午12:48:05* @param file* @return*/public final boolean createFile(String file) {return createFile(new File(file));}}。
java对文件名的几个操作,获取文件扩展名,去掉扩展名
/**
* Return the extension portion of the file's name .
*
* @see #getExtension
*/
public static String getExtension(File f) {
return (f != null) ? getExtension(f.getName()) : "";
}
public static String getExtension(String filename) {
return getExtension(filename, "");
}
public static String getExtension(String filename) {
return getExtension(filename, "");
}
public static String getExtension(String filename, String defExt) {
if ((filename != null) && (filename.length() > 0)) {
int i = stIndexOf('.');
if ((i >-1) && (i < (filename.length() - 1))) {
return filename.substring(i + 1);
}
}
return defExt;
}
public static String trimExtension(String filename) {
if ((filename != null) && (filename.length() > 0)) {
int i = stIndexOf('.');
if ((i >-1) && (i < (filename.length()))) {
return filename.substring(0, i);
}
}
return filename;
}
substring(参数)是java中截取字符串的一个方法
有两种传参方式
一种是public String substring(int beginIndex)
返回一个新的字符串,它是此字符串的一个子字符串。
该子字符串从指定索引处的字符开始,直到此字符串末尾。
另一种是public String substring(int beginIndex, int endIndex)
返回一个新字符串,它是此字符串的一个子字符串。
该子字符串从指定的beginIndex 处开始,直到索引endIndex - 1 处的字符。
因此,该子字符串的长度为endIndex-beginIndex。
详情请参考API ng.String
至于LZ说的
String subString;
subString=number.subString(i,i+1);
定义一个String类型的变量去存储number截取第i个位置到第i+1个位置的字符串
笼统说就是我们去截取number的第i个到第i+1个的字符,然后赋值给String 类型的变量subString。