javaio文件操作

来源:互联网 发布:蜂窝移动数据开关失效 编辑:程序博客网 时间:2024/05/17 21:48

创建文件和删除文件

File.separator代替'/'实现路径分割

package no4;import java.io.File;import java.io.IOException;public class M{public static void main(String[] args) throws IOException{File file = new File("C:"+ File.separator+"AAA"+File.separator+"DATA.txt");//file.mkdirs();//这样同时也将DATA.txt设置成了目录//这样就会先创建设置DATA.txt前成 目录,在设置DATA.txt为文件file.getParentFile().mkdirs();file.createNewFile();}}

列出指定目录下文件

package no4;import java.io.File;import java.io.IOException;public class M{public static void main(String[] args) throws IOException{File file = new File("C:"+ File.separator+"Windows");if(file.exists() && file.isDirectory()){ //文件存在且是文件夹File[] r = file.listFiles();//列出指定的目录内容for(int i=0; i<r.length; i++){System.out.println(r[i]);}}}}

创建文件,将数据写入文件,从文件读取数据

package no4;import java.io.*;public class A{   public static void main(String args[])throws IOException{  /*    File file = new File("C:"+File.separator+"Hello1.txt");      // 创建文件      file.createNewFile();      FileWriter writer = new FileWriter(file);       // 向文件写入内容      writer.write("This\n is\n an\n example\n");       writer.flush();//强制将缓冲区数据发送      writer.close();      // 创建 FileReader 对象      FileReader fr = new FileReader(file);       char [] a = new char[50];      fr.read(a); // 读取数组中的内容      for(char c : a)          System.out.print(c); // 一个一个打印字符      fr.close();*/  File file = new File("C:"+File.separator+"Hello.txt");  //创建Hello文件  file.createNewFile();    //向文件中写入数据  FileWriter writer = new FileWriter(file);  writer.write("hahahaha\nxixixi");  writer.flush();//强制将缓冲区数据发送  writer.close();    //从文件中读取  FileReader reader = new FileReader(file);  char[] ch  = new char[100];  reader.read(ch);  for (char c : ch){  System.out.print(c);  }  reader.close();   }}

递归输出指定文件对象的目录文件名

package no4;import java.io.*;public class Aa {public static void main(String[] args) {// TODO 自动生成的方法存根File file = new File("C://Windows");print(file);}public static void print(File file){if (file != null){if (file.isDirectory()){//当前file是目录System.out.println(file);//打印出目录File file1[]=file.listFiles();//存放目录列表if (file1 != null){for (int i=0; i<file1.length; i++){//遍历每个列表项print(file1[i]);//递归调用}}}else{//是文件直接打印System.out.println(file);}}}}


InputStream字节输入流

import java.io.*;import javax.imageio.stream.FileImageInputStream;public class A {public static void main(String[] args) throws IOException {// TODO 自动生成的方法存根File file = new File("c://测试.txt");//InputStream 所有字节流输出的父类//FileInputStream 从文件系统中的某个文件中获得输入字节是InputStream的子类InputStream in = new FileInputStream(file);int flen = (int)file.length();//向下转型byte[] b = new byte[flen];in.read(b);//  从输入流中读取一定数量的字节,并将其存储在缓冲区数组 b 中。in.close();System.out.println("读取到了:"+new String(b));}}

OutputStream字节输出流

import java.io.*;import javax.imageio.stream.FileImageInputStream;public class A {public static void main(String[] args) throws IOException {// TODO 自动生成的方法存根File file = new File("c://测试.txt");OutputStream out = new FileOutputStream(file);//添加rue,文件会追加String str = "hahahahahha  aa";byte[] b = str.getBytes();out.write(b);out.close();}}

复制一份文件

package no1;import java.io.*;import javax.imageio.stream.FileImageInputStream;public class A {public static void main(String[] args) throws IOException {// TODO 自动生成的方法存根//f1();非缓冲方式,耗时//f2();缓冲方式,较快}/* * 非缓冲方式,耗时 */public static void f1() throws IOException{File file = new File("c://测试.txt");InputStream in= new FileInputStream(file);OutputStream out = new FileOutputStream("c://复制的测试文件.txt");int b=0;while ((b=in.read())!=-1){//b获取内容out.write(b);}in.close();out.close();}/* * 缓冲方式,较快 */public static void f2() throws IOException{BufferedInputStream in = new BufferedInputStream(new FileInputStream("c://测试.txt"));BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream("c://复制的测试文件2.txt"));int b=0;while ((b=in.read())!=-1){//b获取内容out.write(b);}in.close();out.close();}}


0 0
原创粉丝点击