字节流:InputStream和OutputStream
过滤流:bufferedInputStream和bufferedOutputStream
过滤流用于给流增加一个缓冲的功能,缓冲区越大,效率越高,典型的牺牲空间换时间
08.01.txt
代码:
public class TestTxt {
public static voidmain(String[] args)
{
String fileName ="C:\\testtxt.txt";
List<String>list = new LinkedList<String>();
list.add("1");
writeTxt(fileName,list);
readTxt(fileName,list);
for (String s :list) {
System.out.println(s);
}
}
/**
* 写入文本
* @param filename 完整文件名
* @param list 按行输入的字符串
*/
public static voidwriteTxt(String fileName, List<String> list){
try {
File file = new File(fileName);
BufferedWriter out = newBufferedWriter(new FileWriter(file));
for (String s : list) {
out.write(s);
out.newLine();
}
out.close();
} catch (Exceptione) {
System.err.println(e.getMessage());
}
}
/**
* 读取TXT,List按行返回
*/
public static voidreadTxt(String filename, List<String> list) {
String s ="";
try {
BufferedReader input = newBufferedReader(new FileReader(filename));
while ((s = input.readLine()) != null){
list.add(s);
}
input.close();
} catch (Exceptione) {
System.err.println(e.getMessage());
}
}
}
08.02.excel
代码:
public class TestExcel {
public static voidmain(String[] args)
{
List<List<String>> list1 = newjava.util.ArrayList<List<String>> ();
String fileName="C:/testxls.xls";
int sheetNum= 0;
List<String>ll = new java.util.ArrayList<String>();
ll.add("列1");
ll.add("列2");
list1.add(ll);
writeExcel(fileName, "sheetName", sheetNum, list1);
readSheet(fileName,"sheetName",2,list1);
for(List<String> ll1 : list1) {
System.out.println(ll1.toString());
}
}
/**
* 读取Excel中Sheet
* @param fileName 完整文件名
* @param sheetName表格名
* @param columnNum读取的列数
* @param list 按行按列返回的字符串
*/
public static voidreadSheet(String fileName, String sheetName,
int columnNum,List<List<String>> list) {
try {
WorkbookSettings setting = newWorkbookSettings();
setting.setSuppressWarnings(true);
Workbook book =Workbook.getWorkbook(new File(fileName),setting);
// 获得工作表对象
Sheet sheet =book.getSheet(sheetName);
// 得到列行的单元格
for(int i=0;i<sheet.getRows();i++){
List<String> ll = newArrayList<String>();
for(int j=0; j<columnNum; j++) {
String s = sheet.getCell(j,i).getContents();
ll.add(s);
}
list.add(ll);
}
book.close();
} catch (Exceptione) {
System.err.println(e.getMessage());
}
}
/**
* 写入Excel
* @param fileName 完整文件名
* @param sheetName表格名
* @param sheetNum 表的相对位置
* @param list 按行按列输入的字符串
*/
public static voidwriteExcel(String fileName, String sheetName, int sheetNum,
List<List<String>> list) {
try {
//设置字体
WritableFont font = newWritableFont(WritableFont.ARIAL,10,WritableFont.BOLD,false,UnderlineStyle.NO_UNDERLINE,Colour.BLACK);
WritableCellFormat cFormat = new WritableCellFormat(font);
WritableWorkbook book =Workbook.createWorkbook(new File(fileName));
WritableSheet sheet =book.createSheet(sheetName,sheetNum);
sheet.setColumnView(0, 25);
sheet.setColumnView(1, 25);
sheet.setColumnView(2, 20);
sheet.setColumnView(3, 20);
sheet.setColumnView(4, 25);
sheet.setColumnView(5, 25);
int rowNum = 0;
int lineNum = 0;
for (List<String> ll : list) {
for(String s : ll) {
Label label;
if (rowNum==0) {
label = new Label(lineNum++, rowNum, s, cFormat);
} else {
label = new Label(lineNum++, rowNum, s);
}
sheet.addCell(label);
}
rowNum++;
lineNum = 0;
}
book.write();
book.close();
} catch (Exceptione) {
System.err.println(e.getMessage());
}
}
}