package test;import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Date;
import java.util.StringTokenizer;public class TestLrc {
ArrayList<DataLine> list = null;
ArrayList<String> message = null;
StringTokenizer token = null;
FileInputStream in = null;
BufferedReader buff = null;
static int count = 0;
TestLrc(){
list = new ArrayList<DataLine>();
message = new ArrayList<String>();
try {
in = new FileInputStream("F:/ligo.lrc");
buff = new BufferedReader(new InputStreamReader(in));
String temp = null;
while((temp=buff.readLine())!=null){
DataLine dataLine = new DataLine();
String dataStr = temp.substring(temp.indexOf('[')+1,temp.indexOf(']'));
if(dataStr.startsWith("ti")||dataStr.startsWith("ar")
||dataStr.startsWith("al")||dataStr.startsWith("by")){
message.add(temp);
}else{
long minute = Long.parseLong(dataStr.substring(0,2));
long second = Long.parseLong(dataStr.substring(3,5));
long nao = Long.parseLong(dataStr.substring(6));
dataLine.lrcTime = minute*60*1000+second*1000+nao*10;
dataLine.lrcText = temp.substring(temp.indexOf(']')+1);
list.add(dataLine);
}
}
} catch (IOException e) {
e.printStackTrace();
}
Date startTime = new Date();
long start = startTime.getTime();
while(true){
Date endTime = new Date();
if((endTime.getTime()-start)==list.get(count).lrcTime){
System.out.println(list.get(count).lrcText);
count++;
}
}
}
public static void main(String[] args) {
new TestLrc();
}
class DataLine{
public long lrcTime;
public String lrcText;
}
}
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Date;
import java.util.StringTokenizer;public class TestLrc {
ArrayList<DataLine> list = null;
ArrayList<String> message = null;
StringTokenizer token = null;
FileInputStream in = null;
BufferedReader buff = null;
static int count = 0;
TestLrc(){
list = new ArrayList<DataLine>();
message = new ArrayList<String>();
try {
in = new FileInputStream("F:/ligo.lrc");
buff = new BufferedReader(new InputStreamReader(in));
String temp = null;
while((temp=buff.readLine())!=null){
DataLine dataLine = new DataLine();
String dataStr = temp.substring(temp.indexOf('[')+1,temp.indexOf(']'));
if(dataStr.startsWith("ti")||dataStr.startsWith("ar")
||dataStr.startsWith("al")||dataStr.startsWith("by")){
message.add(temp);
}else{
long minute = Long.parseLong(dataStr.substring(0,2));
long second = Long.parseLong(dataStr.substring(3,5));
long nao = Long.parseLong(dataStr.substring(6));
dataLine.lrcTime = minute*60*1000+second*1000+nao*10;
dataLine.lrcText = temp.substring(temp.indexOf(']')+1);
list.add(dataLine);
}
}
} catch (IOException e) {
e.printStackTrace();
}
Date startTime = new Date();
long start = startTime.getTime();
while(true){
Date endTime = new Date();
if((endTime.getTime()-start)==list.get(count).lrcTime){
System.out.println(list.get(count).lrcText);
count++;
}
}
}
public static void main(String[] args) {
new TestLrc();
}
class DataLine{
public long lrcTime;
public String lrcText;
}
}
解决方案 »
- long型转换为int越界以后再转回long的问题
- 一个关于JTextPane的setText函数的问题
- JNDi的资料
- 自己写的网络聊天室,怎么让它应用?
- awt中的线程(暂停键怎么实现)
- 谁用Jericho HTML Parser,看看Source的public Element findNextElement(int pos, java.lang.String name)方法
- 问一个Double类里的isNaN(double v)方法问题
- 什么叫"运行收尾模块"和"释放存储空间"
- 如何下载JAVA扩展包
- 请问有什么java共通类能在程序里将unicode转换成String对象?
- 一个简单的面向对象程序,不太理解,新手请教:)小弟先谢谢了
- gxt怎么连接数据库啊?
1.文件中有空行的时候会出错
String dataStr = temp.substring(temp.indexOf('[')+1,temp.indexOf(']'));
temp.indexOf(']')返回-12.建议可以用定时器打印歌词
是的,还要获取字符的编码。我获取的是UTF-8,GBK,BIG5。
Date endTime = new Date();
if((endTime.getTime()-start)==list.get(count).lrcTime){
System.out.println(list.get(count).lrcText);
count++;
}
}
这里死循环,不断创建Date对象,会引起内存泄漏的。