输入输出流
1、字节输入输出流
package org.hanqi.ex; import java.io.*; public class TestFile1 { public static void main(String[] args) { File f1=new File("d:\\test.txt"); if(f1.exists()) { System.out.println("文件已存在"); //输入输出 //从内存向硬盘上的文件输出文字 //构造方法 方法1 传入File实例 方法2 传入一个文件名 //方法1 传入File实例 try { FileOutputStream fo=new FileOutputStream(f1); String str="大家好"; //以字节数组的形式写入 byte[] b=str.getBytes(); fo.write(b);//写入 fo.close();//主动关闭输出流,释放文件 //从硬盘文件读入文字 //构造方法,指明从哪个文件读入 FileInputStream fi=new FileInputStream(f1); byte[] c=new byte[1024];//用来装载读入的数据,事先指定一个默认大小(1024) //返回值表示读入数据的长度 //传入引用类型 int l=fi.read(c);//实际上传入的是数组地址 //转换指定位置的字符串,位数用l表示 String str1=new String(c,0,l);//(数组,开始位置,结束长度) System.out.println("读入的内容=" +str1); System.out.println("读入的内容的长度=" +str1.length()); fi.close(); } catch (FileNotFoundException e) { System.out.println("要输出的文件不存在"); e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } else { System.out.println("文件不存在,创建文件"); try { if(f1.createNewFile()) { System.out.println("文件创建成功"); } else { System.out.println("文件创建失败"); } } catch (IOException e) { e.printStackTrace(); } } } }
package org.hanqi.ex; import java.io.*; public class TestFile2 { public static void main(String[] args) { try { //追加写入 //构造函数后面()最后加true FileOutputStream fos=new FileOutputStream("d:\\test.txt",true); String str="\n心情不错"; fos.write(str.getBytes());//写入是覆盖写入 fos.close(); FileInputStream fis=new FileInputStream("d:\\test.txt"); byte[] b=new byte[200]; int i=fis.read(b); //转换 String str1=new String(b,0,i); System.out.println("读取内容:" +str1); fis.close(); } catch (Exception e) { e.printStackTrace(); } } }
2、字符输入输出流
package org.hanqi.ex; import java.io.*; public class TestFile3 { public static void main(String[] args) { // TODO 自动生成的方法存根 try { //读取 FileReader fr=new FileReader("d:\\test.txt"); char[] c=new char[200]; int i=fr.read(c); String str=new String(c,0,i); System.out.println("读取内容:" +str); fr.close(); //写入 FileWriter fw=new FileWriter("d:\\test.txt",true); fw.write("\n新追加的内容"); fw.close(); } catch (Exception e) { e.printStackTrace(); } } }