Java IO操作的实例代码
2008-11-18 23:00215人阅读评论(0)收藏举报
Java IO操作的实例代码(部分来自网络源码) //** * 程序输出的时候会有乱码,原因是因为read()方法读取一个字节,中文字符 * 是由两个字节构成,取一个字节(字符的一半)就转成一个字符,所以输出就会是乱码 * @author DaHai * */ public class TestFileInputStream{ public static void main(String args[]){ int b = 0; FileInputStream in = null; try{ in = new FileInputStream("c://TestFileInputStream.java"); }catch(FileNotFoundException e){ System.out.println("找不到指定的文件"); //终止当前正在运行的 Java 虚拟机。参数用作状态码;根据惯例,非零的状态码表示异常 终 止。 System.exit(-1); } try{ long num = 0; //只有读到文件的结尾才为-1 while((b=in.read())!=-1){ System.out.print((char)b); num++; } in.close(); System.out.println(); System.out.println("共读取了"+ num +"个字节");
}catch(IOException e){ System.out.println("文件读取错误"); System.exit(-1); } } }
Java代码 复制文件 import java.io.*; public class TestFileOutputStream{ public static void main(String args[]){ int b = 0; FileInputStream in = null; FileOutputStream out = null; try{ in = new FileInputStream("c://TestFileInputStream.java"); //如果这个时候C盘下面还没有Test.java,那么new FileOutputStream会创建一个空的 Test.java 文件,但不会创建目录 out = new FileOutputStream("c://Test.java"); while((b = in.read())!=-1){ out.write(b); } in.close(); out.close(); }catch(FileNotFoundException e){ System.out.println("找不到指定文件"); System.exit(-1); }catch(IOException e){ System.out.println("文件复制错误"); System.exit(-1); } System.out.println("文件已复制");
} }
从文件里读取字符数据 Java代码 import java.io.*; public class TestFileReader{ public static void main(String args[]){ FileReader fr = null; int c = 0; try{ fr = new FileReader("c://TestFileReader.java"); while((c = fr.read())!=-1){ System.out.print((char)c); } }catch(FileNotFoundException e){ System.out.println("
系统找不到指定的文件"); }catch(IOException e){ System.out.println("文件读取错误"); } } }
向文件里写字符数据 下面这个小
程序可以写出全世界所有的字符 Java代码 import java.io.*; public class TestFileWriter{ public static void main(String args[]){ FileWriter fw = null; int b = 0; try{ fw = new FileWriter("c://Unicode.dat"); for(b=0;b<65536;b++) {
fw.write(b); } fw.flush(); fw.close(); } catch(FinleNotFoundException e) { e.printStackTrace(); System.out.println(e.getMessage()); System.exit(0); } catch(IOException e) { e.printStackTrace(); System.out.println(e.getMessage()); System.exit(0); } } }
带缓冲区功能的输入流 Java代码 import java.io.*; public class TestBufferStream{ public static void main(String args[]){ try{ //一个字节的输入流并且不带缓冲区 FileInputStream fis = new FileInputStream("c://TestFileInputStream.java"); //相当于在上面的fis流上又套了一层管道,实际上读取的是一样的数据,但是它有了带缓冲 区的功 能 BufferedInputStream bis = new BufferedInputStream(fis); int c = 0;
System.out.println(bis.read()); System.out.println(bis.read()); //mark一个标记,从第100个开始往外读 bis.mark(100); for(int i=0;i<10 &;&; (c=bis.read())!=-1;i++){ System.out.print((char)c+" "); } System.out.println(); //重置到上面的mark处 bis.reset(); for(int i=0;i<=10 &;&;