用java读取M3U(播放列表)文件

用java读取M3U(播放列表)文件,java,Java,有人知道java库允许我读取m3u文件以获取 文件名及其作为数组的绝对路径 澄清:我希望我的java程序能够解析winamp播放列表 文件(.M3U)获取播放列表中mp3文件的名称和路径快速谷歌搜索产生,这似乎可以。快速谷歌搜索产生,这似乎可以。尝试我的java M3U解析器: 用法: try{ M3U_Parser mpt = new M3U_Parser(); M3UHolder m3hodler = mpt.parseFile(new File("12397709.m3u")); f

有人知道java库允许我读取m3u文件以获取 文件名及其作为数组的绝对路径

澄清:我希望我的java程序能够解析winamp播放列表
文件(.M3U)获取播放列表中mp3文件的名称和路径

快速谷歌搜索产生,这似乎可以。

快速谷歌搜索产生,这似乎可以。

尝试我的java M3U解析器:

用法:

try{
 M3U_Parser mpt = new M3U_Parser();
 M3UHolder m3hodler = mpt.parseFile(new File("12397709.m3u"));
 for (int n = 0; n < m3hodler.getSize(); n++) {
 System.out.println(m3hodler.getName(n));
 System.out.println(m3hodler.getUrl(n));
 }
}catch(Exception e){
 e.printStackTrace():
}
试试看{
M3U_解析器mpt=新的M3U_解析器();
M3UHolder m3hodler=mpt.parseFile(新文件(“12397709.m3u”);
对于(int n=0;n

项目已发布

请尝试我的java m3u解析器:

用法:

try{
 M3U_Parser mpt = new M3U_Parser();
 M3UHolder m3hodler = mpt.parseFile(new File("12397709.m3u"));
 for (int n = 0; n < m3hodler.getSize(); n++) {
 System.out.println(m3hodler.getName(n));
 System.out.println(m3hodler.getUrl(n));
 }
}catch(Exception e){
 e.printStackTrace():
}
试试看{
M3U_解析器mpt=新的M3U_解析器();
M3UHolder m3hodler=mpt.parseFile(新文件(“12397709.m3u”);
对于(int n=0;n

项目已发布

m3u是一个可以逐行读取的常规文本文件。记住以#开头的那几行是注释。这是我为这个目的而做的一个课程。此类假定您只需要计算机上的文件。如果你想要网站上的文件,你必须做一些小的编辑

/*
 * Written by Edward John Sheehan III
 * Used with Permission
 */

package AppPackage;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author Edward John Sheehan III
 */
public class PlayList {
    List<String> mp3;
    int next;
    public PlayList(File f){
        mp3=new ArrayList<>();
        try (BufferedReader br = new BufferedReader(new FileReader(f))) {
            String line;
            while ((line = br.readLine()) != null) {
               addMP3(line);
            }
        } catch (IOException ex) {
            System.out.println("error is reading the file");
        }
        next=-1;
    }    

    private void addMP3(String line){
        if(line==null)return;
        if(!Character.isUpperCase(line.charAt(0)))return;
        if(line.indexOf(":\\")!=1)return;
        if(line.indexOf(".mp3", line.length()-4)==-1)return;
        mp3.add(line);
    }

    public String getNext(){
        next++;
        if(mp3.size()<=next)next=0;
        return mp3.get(next);
    }
}

m3u是一个可以逐行读取的常规文本文件。记住以#开头的那几行是注释。这是我为这个目的而做的一个课程。此类假定您只需要计算机上的文件。如果你想要网站上的文件,你必须做一些小的编辑

/*
 * Written by Edward John Sheehan III
 * Used with Permission
 */

package AppPackage;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author Edward John Sheehan III
 */
public class PlayList {
    List<String> mp3;
    int next;
    public PlayList(File f){
        mp3=new ArrayList<>();
        try (BufferedReader br = new BufferedReader(new FileReader(f))) {
            String line;
            while ((line = br.readLine()) != null) {
               addMP3(line);
            }
        } catch (IOException ex) {
            System.out.println("error is reading the file");
        }
        next=-1;
    }    

    private void addMP3(String line){
        if(line==null)return;
        if(!Character.isUpperCase(line.charAt(0)))return;
        if(line.indexOf(":\\")!=1)return;
        if(line.indexOf(".mp3", line.length()-4)==-1)return;
        mp3.add(line);
    }

    public String getNext(){
        next++;
        if(mp3.size()<=next)next=0;
        return mp3.get(next);
    }
}

我不知道你问什么。“以数组形式获取文件名及其绝对路径”的确切含义是什么?也许您可以显示一些伪代码?为什么不直接读取.m3u文件的内容呢?获取lines数组,并在每一行的前面加上.m3u文件的目录。我不知道你在问什么。“以数组形式获取文件名及其绝对路径”的确切含义是什么?也许您可以显示一些伪代码?为什么不直接读取.m3u文件的内容呢?获取lines数组并在.m3u文件目录的每一行前添加前缀。在此阶段不能推荐Lizzy。单元测试基本上是不存在的,项目没有维护,也没有埋在Sourceforge中。另外还有硬ffmpeg依赖关系,这对文本文件解析器来说没有什么意义。在这个阶段不能推荐Lizzy。单元测试基本上是不存在的,项目没有维护,也没有埋在Sourceforge中。此外,还有硬ffmpeg依赖关系,这对于文本文件解析器来说意义不大。