java中的非法字符错误
问题描述:
我正在尝试使用java读取excel文件。编译程序时,我收到错误为非法字符。帮助我解决这个问题。这里是代码java中的非法字符错误
import java.io.IOException;
import java.io.*;
import java.util.Iterator;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.usermodel.HSSFRow;
public class Readingexcel {
public static void main(String[] args) {
try {
System.out.println("before reading");
POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream("input.xlsx"));
HSSFWorkbook wb = new HSSFWorkbook(fs);
HSSFSheet sheet = wb.getSheet("first");
HSSFRow row;
HSSFCell cell;
String s;
int rows; // No of rows
rows = sheet.getPhysicalNumberOfRows();
System.out.println(rows);
System.out.println(sheet.getRow(1).getPhysicalNumberOfCells());
int cols = 0; // No of columns
int tmp = 0;
// This trick ensures that we get the data properly even if it doesn’t start from first few rows
for (int i = 0; i < 10 || i < rows; i++) {
row = sheet.getRow(i);
if (row != null) {
tmp = sheet.getRow(i).getPhysicalNumberOfCells();
if (tmp > cols) {
cols = tmp;
}
}
}
for (int r = 0; r < rows; r++) {
row = sheet.getRow(r);
if (row != null) {
for (int c = 0; c < cols; c++) {
cell = row.getCell((short) c);
if (cell != null) {
// Your code here
// s = cell.getData();
System.out.println(cell.getStringCellValue());
}
}
}
}
} catch (Exception ioe) {
ioe.printStackTrace();
}
}
}
在编译程序我得到错误,如
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
C:\Documents and Settings\vino>cd C:\Program Files\jdk1.6.0_10\bin
C:\Program Files\jdk1.6.0_10\bin>javac Readingexcel.java
Readingexcel.java:1: illegal character: \187
import java.io.IOException;
^
Readingexcel.java:1: illegal character: \191
import java.io.IOException;
^
2 errors
任何人都可以帮我解决这个问题。
答
我很肯定这是BOMs(Byte Order Marks)。确保你使用正确的编码。也许在其他编辑器中打开文件并重新保存以删除物料清单。例如,Nodepad ++可以帮助您。
祝你好运, 最大
+0
感谢马克斯..它的工作 – darsha 2012-01-30 15:18:21
答
看起来你有一个BOM的问题。在十六进制编辑器中打开文件,并删除看起来很奇怪的第一个字节,并在第一个导入行之前出现。
在文件的开头有一些不可见的字符。如果您不能修复它们,只需将源代码复制到一个新文件中并删除旧文件。 – kba 2012-01-30 13:42:26
你可以发布input.xlsx – L7ColWinters 2012-01-30 13:43:06
看起来你已经有'∩╗┐'在你的源代码...当你在记事本中打开你的.java文件时会发生什么? – beny23 2012-01-30 13:43:27