JAVA中我们经常会从一个文件中读取数据或者写数据或者删除删除数据
下面来看一下串流的继承架构:
图片参考:http://blog.youkuaiyun.com/wh4656438/article/details/51727795
今天这片文章主要举几个字节流的文件读写
1,读取文件中的字符,每次读取一个字符
package a001; import java.io.FileInputStream; import java.io.IOException; public class FileinputDemo { public static void main(String[] args) throws IOException { // 创建输入字节流对象 FileInputStream fs1=new FileInputStream("h:\\d.txt"); int by=0; //此处的char,只能读取char类型的 不能读取中文 ,因为这里一次读取一个字符,汉字不止一个字符 //如果文件中包含汉字,则会乱码 while((by=fs1.read())!=-1){ System.out.print((char)by); } fs1.close(); } }
2,将数据写入文件
package a001; import java.io.FileOutputStream; import java.io.IOException; /* * 实现数据的换行 * 追加添加数据 * * */ public class FileOutputDemo3 { public static void main(String[] args)throws IOException { // FileOutputStream fos4=new FileOutputStream("h:\\d.txt");//这个每次都是重新写入内容 FileOutputStream fos4=new FileOutputStream("h:\\d.txt",true);//追加写入 for(int x=0;x<10;x++){ fos4.write(("hello"+x).getBytes()); fos4.write("\r\n".getBytes()); } //释放资源 fos4.close(); } }
3,查找文件中的以.jpg结尾的名字的文件(搜索照片)
package a001; import java.io.File; /* *查找文件夹中的.jpg文件 * */ public class jpgPathDemo { public static void main(String[] args) { File srcFolder=new File("h:\\photo1"); photoPathDemo(srcFolder); } private static void photoPathDemo(File srcFolder) { //返回当前文件夹中的所有文件 File[] fileArray=srcFolder.listFiles(); //遍历文件,并判断是否为文件夹,如果为文件夹则递归判断子文件夹中的文件 //如果不为文件夹,则查找以.JPG结尾的文件,并输出 for(File file:fileArray){ if(file.isDirectory()){ photoPathDemo(file); }else{ if(file.getName().endsWith(".JPG")){ System.out.println(file.getAbsolutePath()); } } } } }
4,用递归的方法删除文件夹中的文件
package a001; import java.io.File; public class deleteDemo { public static void main(String[] args) { //封装文件夹 File srcFolder =new File("h:\\movie"); deleteFiles(srcFolder); } private static void deleteFiles(File srcFolder) { // TODO Auto-generated method stub File[] fileArray=srcFolder.listFiles(); //遍历删除文件夹中的文件 for(File file:fileArray){ if(file.isDirectory()){ deleteFiles(file); }else{ System.out.println(file.getName()+"----"+file.delete()); } } //删除根目录 System.out.println(srcFolder.getName()+"---"+srcFolder.delete()); } }