您好,我正在尝试拆分包含以下内容的文本文件[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
感谢。
答案 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?