import java.io.*;
import java.util.*;
public class BBSTest {
public static void main(String[] args) {
String Line;
Collection c = new ArrayList();
try {
FileReader in = new FileReader("E:\\BBS.txt");
BufferedReader br = new BufferedReader(in);
while((Line = br.readLine())!=null) {
Line = br.readLine();
c.add(Line);
}
br.close();
in.close();
} catch (FileNotFoundException e) {
System.out.println("找不到指定文件");
System.exit(-1);
}catch (IOException e) {
System.out.println("文件读取错误");
}
LineDate lineinfo[] = new LineDate[c.size()];
Iterator ii = c.iterator();
int i = 0;
while(ii.hasNext()) {
//next()的返回值为Object类型,需要转换为相应类型
lineinfo[i] = new LineDate((String)ii.next());
i++;
}
new Lineprint(lineinfo);
}
}class LineDate {
int id,pid;
String contend,linedate;
StringBuffer blackStr;
boolean isleaf;
String linearray[];
LineDate(String linedate) {
this.linedate = linedate;
StringTokenizer l = new StringTokenizer(linedate);
for(int i = 0; i < 4; i++) {
linearray[i] = l.nextToken();
}
id = (new Integer(linearray[0])).intValue();
contend = linearray[1];
pid = (new Integer(linearray[2])).intValue();
if(linearray[3].equals("1")) isleaf = true;
else isleaf = false;
}
}class Lineprint {
LineDate lineinfo[];
Lineprint(LineDate lineinfo[]) {
this.lineinfo = lineinfo;
for(int i = 0; i < lineinfo.length; i++) {
if (lineinfo[i].pid != 0)
lineinfo[i].blackStr = lineinfo[lineinfo[i].pid].blackStr.append(" ");
else
lineinfo[i].blackStr = null;
}
}
public void printline() {
for(int i = 0; i < lineinfo.length; i++){
System.out.println(lineinfo[i].blackStr.toString() + lineinfo[i].contend);
}
}
}运行javac编译显示:使用了未经检查或不安全的操作。
或运行javac -Xlint显示:13:[unchecked]对作为普通类型java.util.collection的成员的add<E>的调用未经检查 c.add<Line>;运行java显示: Exception in thread "main" java.lang.NullPointerException at LineDate.<init><BBSTest.java:49>
at BBSTest.main<BBSTest.java:30>
import java.util.*;
public class BBSTest {
public static void main(String[] args) {
String Line;
Collection c = new ArrayList();
try {
FileReader in = new FileReader("E:\\BBS.txt");
BufferedReader br = new BufferedReader(in);
while((Line = br.readLine())!=null) {
Line = br.readLine();
c.add(Line);
}
br.close();
in.close();
} catch (FileNotFoundException e) {
System.out.println("找不到指定文件");
System.exit(-1);
}catch (IOException e) {
System.out.println("文件读取错误");
}
LineDate lineinfo[] = new LineDate[c.size()];
Iterator ii = c.iterator();
int i = 0;
while(ii.hasNext()) {
//next()的返回值为Object类型,需要转换为相应类型
lineinfo[i] = new LineDate((String)ii.next());
i++;
}
new Lineprint(lineinfo);
}
}class LineDate {
int id,pid;
String contend,linedate;
StringBuffer blackStr;
boolean isleaf;
String linearray[];
LineDate(String linedate) {
this.linedate = linedate;
StringTokenizer l = new StringTokenizer(linedate);
for(int i = 0; i < 4; i++) {
linearray[i] = l.nextToken();
}
id = (new Integer(linearray[0])).intValue();
contend = linearray[1];
pid = (new Integer(linearray[2])).intValue();
if(linearray[3].equals("1")) isleaf = true;
else isleaf = false;
}
}class Lineprint {
LineDate lineinfo[];
Lineprint(LineDate lineinfo[]) {
this.lineinfo = lineinfo;
for(int i = 0; i < lineinfo.length; i++) {
if (lineinfo[i].pid != 0)
lineinfo[i].blackStr = lineinfo[lineinfo[i].pid].blackStr.append(" ");
else
lineinfo[i].blackStr = null;
}
}
public void printline() {
for(int i = 0; i < lineinfo.length; i++){
System.out.println(lineinfo[i].blackStr.toString() + lineinfo[i].contend);
}
}
}运行javac编译显示:使用了未经检查或不安全的操作。
或运行javac -Xlint显示:13:[unchecked]对作为普通类型java.util.collection的成员的add<E>的调用未经检查 c.add<Line>;运行java显示: Exception in thread "main" java.lang.NullPointerException at LineDate.<init><BBSTest.java:49>
at BBSTest.main<BBSTest.java:30>
import java.util.*;
public class BBSTest {
public static void main(String[] args) {
String Line;
Collection<String> c = new ArrayList<String>(); //<>解决:使用了未经检查或不安全的操作。
try {
FileReader in = new FileReader("E:\\BBS.txt");
BufferedReader br = new BufferedReader(in);
while((Line = br.readLine())!=null) {
//Line = br.readLine(); //需要注掉
c.add(Line);
}
br.close();
in.close();
//}catch (FileNotFoundException e) { //不需要
// System.out.println("找不到指定文件");
// System.exit(-1);
}catch (IOException e) {
System.out.println("文件读取错误");
}
LineDate[] lineinfo = new LineDate[c.size()];
Iterator ii = c.iterator();
int i = 0;
while(ii.hasNext()) {
//next()的返回值为Object类型,需要转换为相应类型
String s=(String)ii.next();
try{
lineinfo[i] = new LineDate(s); //需要捕捉异常
}catch (IOException e) {
System.out.println("错误");
}
i++;
}
new Lineprint(lineinfo).printline();
}
}class LineDate { int id,pid;
String contend,linedate;
String blackStr;
boolean isleaf;
String[] linearray; LineDate(String linedate) throws IOException {
this.linedate = linedate;
StringTokenizer l = new StringTokenizer(linedate);
//for(int i = 0; i < 4; i++) {
// linearray[i] = l.nextToken();
//}
this.id = Integer.parseInt(l.nextToken());
this.contend = l.nextToken();
this.pid = Integer.parseInt(l.nextToken());
if(l.nextToken().equals("1")) this.isleaf = true;
else isleaf = false;
}
}class Lineprint {
LineDate lineinfo[];
Lineprint(LineDate lineinfo[]) {
this.lineinfo = lineinfo;
for(int i = 0; i < lineinfo.length; i++) {
if(lineinfo[i].pid==0) lineinfo[i].blackStr ="";
else{
for(int j=0;j<lineinfo.length;j++){
if(lineinfo[j].id==lineinfo[i].pid)
lineinfo[i].blackStr =lineinfo[j].blackStr + " ";
}
}
//if (lineinfo[i].pid != 0)
//lineinfo[i].blackStr = lineinfo[lineinfo[i].pid].blackStr.append(" ");
//else return;
//lineinfo[i].blackStr = null;
}
} public void printline() {
for(int i = 0; i < lineinfo.length; i++){
System.out.println(lineinfo[i].blackStr.toString() + lineinfo[i].contend);
}
}
}