08..文件操作

来源:互联网 发布:战网网络问题 编辑:程序博客网 时间:2024/05/16 17:19

字节流: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());

  }

 }

 

 /**

  *读取TXTList按行返回

  */

 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());

  }

 }

 

 /**

  *读取ExcelSheet

  * @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());

  }

 }

}

 

0 0
原创粉丝点击