本文共 6278 字,大约阅读时间需要 20 分钟。
《Java输入输出》的课堂小例子,针对输入输出流、字符流、字节流和文件操作等知识点
示例文件(共9个小例子,把相应注释去掉后运行即可)
package com.lecheng;import java.io.*;public class MainTest { /** * @param args */ public static void main(String[] args) { //例子1 :从一个文件读数据,处理后存入另一个文件/* try { BufferedReader in = new BufferedReader(new FileReader("in.txt")); PrintWriter out = new PrintWriter(new BufferedWriter( new FileWriter("out.txt"))); String s; int i = 1; while ((s = in.readLine()) != null) { out.println("line " + i + "=" + s); i++; } in.close(); out.close(); System.out.println("完成!"); } catch (FileNotFoundException e) { System.err.println("无法打开in.txt"); } catch (IOException e) { System.err.println("I/O exception"); }*/ //例子2:用字符流方式从键盘读入数据// try{// InputStreamReader isr= new InputStreamReader(System.in);// BufferedReader is = new BufferedReader(isr);// String inputLine;// while((inputLine = is.readLine())!=null) { // System.out.println(inputLine);// }// is.close();// }catch(IOException e){// System.out.println("IOException: " + e);// } //例子3:将各种数据类型的数据以字节流方式存入文件// try{// StudentPojo stu = new StudentPojo(1, "张三", "石家庄", 56.8, false);// FileOutputStream fout = new FileOutputStream("text.txt");// DataOutputStream out = new DataOutputStream(fout);// out.writeInt(stu.getId());// out.writeChar('\n');// out.writeChars(stu.getName());// out.writeChar('\n');// out.writeChars(stu.getAddress());// out.writeChar('\n');// out.writeDouble(stu.getWeight());// out.writeChar('\n');// out.writeBoolean(stu.isSex());//// out.close();// }catch(IOException e){// } //例子4:将例子3中的内容读出// DataInputStream in=null;// try{// in = new DataInputStream(new FileInputStream("text.txt"));// int id;// StringBuffer name, address;// double weight;// boolean sex;// char ch;// while(true){// id = in.readInt();// in.readChar();// name = new StringBuffer(20);// while((ch = in.readChar())!='\n'){// name.append(ch);// }// address = new StringBuffer(20);// while((ch = in.readChar())!='\n'){// address.append(ch);// }// weight = in.readDouble();// in.readChar();// sex = in.readBoolean();// System.out.println("ID:"+id);// System.out.println("姓名:"+name);// System.out.println("住址:"+address);// System.out.println("体重:"+weight);// System.out.println("性别:"+sex);// }// }catch(IOException e){// } //例子5:使用FileInputStream和FileOutputStream实现文件拷贝/* try{ File inFile=new File("in.txt"); File outFile=new File("out.txt"); FileInputStream fis=new FileInputStream(inFile); FileOutputStream fos=new FileOutputStream(outFile); int i=0, c; while((c=fis.read())!=-1){ fos.write(c); } fis.close(); fos.close(); }catch(FileNotFoundException e) { System.err.println("FileStreamsTest: "+e); }catch(IOException e) { System.err.println("FileStreamsTest: "+e); }*/ //例子6:获取某路径下文件信息// File files = new File("c:\\");// String fileList[] = files.list();// for(int i = 0; i < fileList.length; i++){// File currfiles = new File("c:\\"+fileList[i]);// System.out.print("文件名:" + fileList[i] + "\t");// System.out.println("文件大小:" + currfiles.length());// } //例子7:用字符流方式从键盘读入数据后存入文件// try{// InputStreamReader isr= new InputStreamReader(System.in);// BufferedReader br = new BufferedReader(isr);// FileWriter fw = new FileWriter("char.txt");// BufferedWriter bw = new BufferedWriter(fw);// String str;// while(true){// System.out.print("请输入一个字符串:");// System.out.flush();// str = br.readLine();// if(str.length()==0){// break;// }// bw.write(str);// bw.newLine();// }// bw.close();// }catch(IOException e){// System.out.println("IOException: " + e);// } //例子8:用字符流方式从文件中读入数据,用system.out输出到屏幕// try{// FileReader fr = new FileReader("char.txt");// BufferedReader br = new BufferedReader(fr);// int lineNum = 0;// String str = br.readLine();// while(str != null){// lineNum++;// System.out.println("第"+lineNum+"行:"+str);// str = br.readLine();// }// }catch(IOException e){// System.out.println("IOException: " + e);// } //例子9:用字符流方式从文件中读入数据,用流方式输出到屏幕// try{// FileReader fr = new FileReader("char.txt");// BufferedReader br = new BufferedReader(fr);// OutputStreamWriter osw = new OutputStreamWriter(System.out);// BufferedWriter bw = new BufferedWriter(osw);// int lineNum = 0;// String str = br.readLine();// // while(str != null){// lineNum++;// bw.write(String.valueOf(lineNum));// bw.write(" ");// bw.write(str);// bw.newLine();// str = br.readLine();// }// bw.close();// }catch(IOException e){// System.out.println("IOException: " + e);// } }}用到的POJO类
package com.lecheng;public class StudentPojo { private int id; private String name; private String address; private double weight; private boolean sex; /** * @param id * @param name * @param address * @param weight * @param sex */ public StudentPojo(int id, String name, String address, double weight, boolean sex) { this.id = id; this.name = name; this.address = address; this.weight = weight; this.sex = sex; } /** * @return the id */ public int getId() { return id; } /** * @param id the id to set */ public void setId(int id) { this.id = id; } /** * @return the name */ public String getName() { return name; } /** * @param name the name to set */ public void setName(String name) { this.name = name; } /** * @return the address */ public String getAddress() { return address; } /** * @param address the address to set */ public void setAddress(String address) { this.address = address; } /** * @return the weight */ public double getWeight() { return weight; } /** * @param weight the weight to set */ public void setWeight(double weight) { this.weight = weight; } /** * @return the sex */ public boolean isSex() { return sex; } /** * @param sex the sex to set */ public void setSex(boolean sex) { this.sex = sex; } }
转载地址:http://xknpi.baihongyu.com/