写了个方法,只能读取TXT的文件,EXCEL的读取不了,读出来是乱码,请各位大侠出下招、
public class TestSocket {
public void setWrite(String str) throws Exception{
// Scanner scanner=new Scanner(System.in);
// String str=scanner.next();
File file=new File("d:/kkk.xls");
OutputStream ou=new FileOutputStream(file);
OutputStreamWriter out=new OutputStreamWriter(ou);
out.write(str);
out.close();
ou.close();
}
public String getRead() throws Exception{
File file=new File("c:/java基础题目.txt");
InputStream in=new FileInputStream(file);
InputStreamReader inp=new InputStreamReader(in);
char [] cb=new char[1024*10];
inp.read(cb);
String str=new String(cb);
System.out.println(str);
return str;
}
public static void main(String agrs[]) throws Exception{
TestSocket ts=new TestSocket();
ts.setWrite(ts.getRead());
}
}
public class TestSocket {
public void setWrite(String str) throws Exception{
// Scanner scanner=new Scanner(System.in);
// String str=scanner.next();
File file=new File("d:/kkk.xls");
OutputStream ou=new FileOutputStream(file);
OutputStreamWriter out=new OutputStreamWriter(ou);
out.write(str);
out.close();
ou.close();
}
public String getRead() throws Exception{
File file=new File("c:/java基础题目.txt");
InputStream in=new FileInputStream(file);
InputStreamReader inp=new InputStreamReader(in);
char [] cb=new char[1024*10];
inp.read(cb);
String str=new String(cb);
System.out.println(str);
return str;
}
public static void main(String agrs[]) throws Exception{
TestSocket ts=new TestSocket();
ts.setWrite(ts.getRead());
}
}
import jxl.write.WritableCell;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;import java.util.*;public class Caozuo {
InputStream is = null; //定义一个输入流
jxl.Workbook rwb = null;//定义一个只读的工作薄
WritableWorkbook wr=null; //定义一个可写的工作薄
Caozuo() {
try {
//out=new FileOutputStream("E:\\a.xls");
is = new FileInputStream("E:\\a.xls");//创建一个输入流
rwb = Workbook.getWorkbook(is);//创建只读工作薄
//wr=Workbook.createWorkbook(out);
wr=Workbook.createWorkbook(new File("E:\\a.xls"), rwb);//创建可写的工作薄 } catch (Exception e) {
e.printStackTrace();
}
} public ArrayList Select() {
ArrayList arr = new ArrayList();
Sheet rs = rwb.getSheet(0);//读取第一个表
for (int i = 0; i < rs.getRows(); i++) {
ArrayList arr1 = new ArrayList();
for (int k = 0; k < rs.getColumns(); k++) {
Cell c00 = rs.getCell(k, i);//k表示列,i表示行,注列和行从0开始
String strc00 = c00.getContents();//getContents()方法是将Cell转换为字符串形式
arr1.add(strc00);
}
arr.add(arr1);
}
rwb.close();
return arr;
} public void Insert() throws RowsExceededException, WriteException, IOException {
WritableSheet rs = wr.getSheet(0);//查找表一
//WritableSheet rs = (WritableSheet)rwb.getSheet(0);
int rownumber = rs.getRows();//多少行
int cellnumber = rs.getColumns();//多少列
for (int k = 0; k < cellnumber; k++) {
jxl.write.Label labelC = new jxl.write.Label(k,rownumber,"这是第'"+rownumber+"'行,第'"+k+"'列");
labelC.setString("fdsadf");
//k表示哪一列,rownumber表示哪一行,从而定向到某个单元格,第三个参数是单元格内的内容
rs.addCell(labelC);//把此单元格放入表中
}
wr.write();//写入
wr.close();
}
public void Delete(int id) throws IOException, WriteException{//id表示行号
WritableSheet rs=wr.getSheet(0);//查找表一
rs.removeRow(id-1);//删除行
wr.write();//从内存中写入
wr.close();
}
public void Update(int rowid,int columid,String cansu) throws RowsExceededException, WriteException, IOException{
WritableSheet rs=wr.getSheet(0);
//因为行和列都是从0开始,所以要减一
jxl.write.Label labelC = new jxl.write.Label(columid-1,rowid-1,cansu);
//WritableCell cell=(WritableCell) rs.getCell(columid-1,rowid-1);
rs.addCell(labelC);
wr.write();//写入
wr.close();
}
}
用FileInputStream就够了,不就是一个字节流么poi,jxl,这些个适合比如读写一个cell等。
HttpServletRequest req, HttpServletResponse resp) throws Exception {
// TODO Auto-generated method stub req.setCharacterEncoding("GBK");
resp.setCharacterEncoding("GBK");
HSSFSheet sheet;
HSSFRow sheetRow;
HSSFCell cell;
Testsheet t = new Testsheet();
sheet = wb.createSheet("Spring");
sheet.setDefaultColumnWidth((short) 12);
List<List<String>> listsh = Testsheet.addxinxi();
List<String> listsha = new ArrayList<String>();
int p = -1;
for (List<String> ls : listsh) {
++p;
int j = -1;
for (int h = 0; h < ls.size(); h++) {
j++;
cell = getCell(sheet, p, j);
setText(cell, ls.get(h));
}
if (p == 20) {
break;
}
} }