如何根据扩展名阅读和拆分文件文本?

时间:2014-01-08 15:33:26

标签: java

您好,我正在尝试拆分包含以下内容的文本文件[data.txt]。

abc.txt  
hello.jpg  
play.mp4  
image.jpg  
text.txt

...

文本形式的文件名称。现在我想使用java程序基于文件扩展名分割此文件,如.mp3,.txt,.jpg等。因为后来我想根据扩展或文件类型用不同程序执行那些文件。

我已经创建了一个示例程序,但我没有得到如何基于扩展名

拆分它

示例程序:

import java.util.*;
import java.io.*;
class RF
{
   public void readFile()
   {
    try
    {
    FileInputStream fstream = new FileInputStream("data.txt");
    DataInputStream in = new DataInputStream(fstream);
    BufferedReader br = new BufferedReader(new InputStreamReader(in));
    String strLine;
    while((strLine = br.readLine())!=null)
    {

        String[] splitted = strLine.split(" ");

        for( String s : splitted)
        {
            System.out.println(s);
        }


    }
    in.close();

    } catch(Exception e)
     {

     }
   }
}

public class FileSplit
{
    public static void main(String args[])
    {
        RF r = new RF();
        r.readFile();



    }
   }

我希望输出为:

output 
abc is a text file 
hello is a image file
play is a mp4 file
image is a image file
text is a text file

感谢。

3 个答案:

答案 0 :(得分:1)

检查此声明

strLine.split("-");

你正在拆分错误的分隔符

答案 1 :(得分:1)

尝试按分隔符"\\."分割:

String[] splitted;
while ((strLine = br.readLine()) != null) {
    splitted = strLine.split("\\.");

    System.out.println(splitted[0]);
}

<强>输出:

abc
hello
play
image
text

注意:

扩展名每次迭代都存储在splitted[1]

答案 2 :(得分:0)

kurumi指出你使用了错误的分隔符。你需要使用

strLine.split(".");

即使是“。”分隔你的代码不会考虑文件名本身有“。”的特殊情况。在里面。你最好使用像“FilenameUtils”这样的标准库。请参阅以下内容。 How to get the filename without the extension in Java?