numberformatexception在java中将文件名存储在整数变量中
我有一个文件夹,里面有文件,文件名是110045、56789449等整数。文件包含文本值。我想将文件名存储为键,将其内容存储为树映射中的值。但它给出了数字格式例外:
public void ReadDir()throws Exception{
Map<Integer,List<String>> tweet = new TreeMap<Integer,List<String>>();
File dr = new File("/home/abc/NetBeansProjects/cleantweet");
if(dr.isDirectory()){
String dirlist[] = dr.list();
int nfiles= dirlist.length;
System.out.print("no 0f user tweet files "+ nfiles +"\n");
for(int i =0;i<nfiles;i++){
tw.assignVal(dirlist[i]);
}
}
public void assignVal(String filename) throws Exception {
FileReader fr1 = new FileReader("/home/abc/NetBeansProjects/cleantweet/"+filename);
BufferedReader br1 = new BufferedReader(fr1);
String str="";
while ((str = br1.readLine()) != null) {
assignment.put(str,rand.nextInt(topics-1)+1);
recsys.tweet.put(Integer.parseInt(filename),list);// this line gives error
}
}
# 1 楼答案
我认为
filename
是102。文本 因此,请尝试以下代码:如果仍然有错误,可能是因为数量太多。 因此,您可以使用:
您还可以读取包含字符的隐藏文件,因此需要使用以下代码:
# 2 楼答案
您的输入可能是所有数字,但如果等效数字超出32位有符号整数的范围,则会出现此错误
您的输入必须在
-2147483648
到2147483647
的范围内如果您的值大于这些值,请尝试使用
Long
来解析64位带符号的long
# 3 楼答案
# 4 楼答案
您应该检查文件名是否太长,因此对于该数字而言,整数太小