请帮助我。我正在使用 FileInputStream 处理我的停用词代码,但出现了一条错误消息,提示 java.io.IOException:流已关闭。我正在YouTube上学习一个教程:https://www.youtube.com/watch?v=ckQUlI7x7hI,他的代码运行没有错误。
代码如下:
import java.io.FileInputStream;
import java.util.ArrayList;
public class DataCleaning {
public static void main(String[] args) {
ArrayList sw = new ArrayList<>();
try{
FileInputStream x = new FileInputStream("/Users/Dan/Desktop/DATA/stopwords.txt");
byte b[] = new byte[x.available()];
x.read(b);
x.close();
String data[] = new String(b).split("\n");
for(int i = 0; i < data.length; i++)
{
sw.add(data[i].trim());
}
FileInputStream xx = new FileInputStream("/Users/Dan/Desktop/DATA/cleandata.txt");
byte bb[] = new byte[x.available()];
xx.read(bb);
xx.close();
String dataa[] = new String(bb).split("\n");
for(int i = 0; i < dataa.length; i++)
{
String file = "";
String s[] = dataa[i].split("\\s");
for(int j = 0; j < s.length; i++)
{
if(sw.contains(s[j].trim().toLowerCase()))
{
file=file + s[j] + " ";
}
}
System.err.println(file + "\n");
}
} catch(Exception a){
a.printStackTrace();
}
}
}
这是我运行代码时的错误:
java.io.IOException: Stream Closed
at java.io.FileInputStream.available(Native Method)
at datacleaning.DataCleaning.main(DataCleaning.java:28)
答案 0 :(得分:1)
您必须修复bb
初始化:
byte bb[] = new byte[xx.available()];
xx.available()
而不是x.available()