java File文件操作和文件流的详解(福哥出品).docx_第1页
java File文件操作和文件流的详解(福哥出品).docx_第2页
java File文件操作和文件流的详解(福哥出品).docx_第3页
java File文件操作和文件流的详解(福哥出品).docx_第4页
java File文件操作和文件流的详解(福哥出品).docx_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一. 创建文件 (1)最常用的(获得一个固定路径下的文件对象) File parentFile = new File(“D:My Documents.”);/参数是一个路径的字符串。 (2)在父目录创建一个名为child的文件对象,child 为文件对象的名字 File chileFile= new File(“D:My Documents.”,String child); 或 File chileFile= new File(parentFile,String child);二,常见文件夹属性和方法 (1)createNewFile(); 该方法的作用是创建指定的文件。该方法只能用于创建文件,不能用于创建文 件夹,且文件路径中包含的文件夹必须存在 File file=new (D:My Documenttext.txt); file.createNewFile(); 这样就会在D盘下的My Document 创建text.txt的记事本(注意:首先得保 证D盘下有My Documen这个文件夹) (2)mkdir(); 根据File对象的名字(路径)创建一个目录(文件夹),如果是相对目录,则新建的目 录在当前目录下 (3)mkdirs(); 如果File对象名字有多级目录,则可以调用该方法一次性创建多级目录。 (4)exists(); 判断File对象指向的文件是否存在,返回一个boolean类型 (5)isDirectory(); 判断File对象指向的文件是否为目录,返回一个boolean类型的值,true或者false。 (6)getName();获得文件名称(不带路径) (7)length(); 得到File对象指向文件的长度,以字节计算,返回一个长整形的值(long);注意:在 系统中,文件夹(目录)的大小为零,也就是不占用空间,使用length()时返回的是0 (8)delete(); 删除File对象所指定的文件 (9)isFile(); 判断File对象指向的文件是不是标准文件(就像图片,音乐文件等) 三,文件的属性和方法 1.File.separator 当前操作系统的名称分隔符,等于字符串“”. 2.File.pathSeparator当前操作系统的路径分隔符,等于字符串“;”. 3. File file=new (D:My Documenttext.txt); file.canExecute();测试应用程序是否可以执行该文件; 4.File file=new (D:My Documenttext.txt); file.canRead();测试用用程序是否可以读取该文件 5.file.canWrite(); 测试用程序是否可以修改文件 6.file.exists(); 测试此抽象路径名表示的文件或目录是否存在 7.pareTo(file1); 按字母顺序比较两个抽象路径。 8.file.getAbsolutePath() 返回此抽象路径名的绝对路径名字字符串。 9.file.getCanonicalPath(); 返回此抽象路径名的规范路径名字符串。 10.file.getName(); 返回抽象路径名表示的文件和目录名称。 11.file.getParent(); 返回抽象路径父目录的名字。如果此路径名没有指定父目录名字则返回 null。 12.free = file.getUsableSpace(); 返回此抽象路径名指定的分区上可用于此虚拟机的字节数 13 . = file.hashCode() ; 计算此抽象路径名的哈希码 14 . = file.isAbsolute(); 测试此抽象路径名是否为绝对路径名 15.ong length = file.length() 返回由此抽象路径名表示的文件的长度 16.String array = file2.list(); 返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录 17. File array1 = file2.listFiles() 返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件 18.File roots = File.listRoots(); 列出可用的文件系统根,静态方法比如C:/,D:/ 19.file.setReadOnly() 设置文件只读; 20.files.setWritable(true) 设置文件可写; 三读取文件 FileReader fr=new FileReader(参数) BufferedReader br = new BufferedReader(fr); String a=br.readLine(); while(a!=null) 操作 br.close();fr.close(); 四.写入文件 / 将数据写入文件FileWriter fw = new FileWriter(%1);fw.write(%2);fw.close(); 五 杂项1,提取扩展名String %2=(new File(%1).getName().split(.)1;2,提取文件名String %2=(new File(%1).getName().split(/)1;3. 提取文件路径String %2=(new File(%1).getPath();4. 替换扩展名File replaceExt=new File(%1);replaceExt.renameTo(replaceExt.getName().split(.)0+.+%2);例子1.枚举一个文件夹中的所有文件夹 /import java.io.*;/import java.util.*;ArrayList folderList = new ArrayList();folderList.add(%1);for (int j = 0; j folderList.size(); j+) File file = new File(folderList.get(j);File files = file.listFiles();ArrayList fileList = new ArrayList();for (int i = 0; i files.length; i+) if (filesi.isDirectory() folderList.add(filesi.getPath(); else fileList.add(filesi);for (File f : fileList) %2=f.toString();%3例子2复制文件 int bytesum = 0; int byteread = 0; File oldfile = new File(%1); try if (oldfile.exists() /文件存在时 InputStream inStream = new FileInputStream(oldfile); /读入原文件 FileOutputStream fs = new FileOutputStream(new File(%2,oldfile.getName(); byte buffer = new byte5120; int length; while ( (byteread = inStream.read(buffer) != -1) bytesum += byteread; /字节数 文件大小 System.out.println(bytesum); fs.write(buffer, 0, byteread); inStream.close(); catch (Exception e) System.out.println(复制单个文件操作出错); e.printStackTrace(); 六,数据流的详细介绍 1, 在java中stream代表一种数据流(源),javaio的底层数据元,(想像成水龙头)2,任何能够产生流和数据源的javaio对象都看成inputStream对象,它既然可以产生流,我们就可用read()的封装方法来进行(将数据从水龙头进行读取数据)3任何能够接受数据(源)流的对象javaio的叫做outputStream,他能就收流的数据,我们调用write方法来进行数据收集4我们可以在inputStream和outputstram的基础上,从实际出发从新封装不同属性的输入输出数据流,javaio提供了很多丰富的输入输出对象七,字节流和字符流的区别(字节:是一种计量单位,字符:常使用汉字和符号一个字符等于两个字节) 1以Stream结尾的都是字节流,都已reader 和writer结尾的都是字符流,两者的区别就是一个在读写的时候按照字符,一个是按照字节 2在读写的过程当中要对内容安行进行处理,比如特定行字符或者是一行数据时一般会选择字符流3如果对内容没有要求 一般选择字节流八,字符流的介绍基于Stream的字节流DataInputStream-DataOutputStreamFileInputStream-FileOutputStream基于Stream的字符流FileWriter-FileReaderStringWriter-StringReaderInputStream:是一个出水龙头(把水封装在里头)的一个实物对象,该对象的read方法呢,就想成这个出水龙头这一机制对象的开关钮,你read或openStream(其他对象包容InputStream对象的对象方法)一下呢,就等于打开了出水龙头的按钮,水就出来了,里头封装的水是什么性质的呢,你就用相应的容器来装,如string或byte.OutputStream:你就在InputStream基础上反着想就ok了OutputStream流1,fo为流变量 fo.write(int b)/往流当中写入一个字符 fo.write(byte b)往流当中写乳一个字符数组 fo.write(byte b,int begin,int len) 写入数组b从下标begin开始,长度为len的字节流2.fo.flush()刷空数据流,并输出所有被缓存的字节,由于某些流支持缓存的功能,该方法吧缓存中所有的字节强制输出到流中3,fo.close()流操作完必须关闭流(比如在读文件的时候流不关闭,之后不能对文件进行删除操作)InputStream 流1,ip为输出流对象 Ip.read(); 读取一个字节,返回的是一个字节 Ip.read(byte b)读取一个字节数组,返回一个字节数组串Ip.read(byte b,int bengin,int len) 读取len个字节 从下标为begin开始 2,ip.available() 返回字节流中尚未读取的字节数量3,ip.mark(int readlimit)记录当前指针所在的位置readlimit指指针读取的第readlimit个字节后Ip.reset()把读的指针重新指向mark方法记录的位置字节流:处理字节的输入和输出。包括读写二进制数据等方面的内容。字符流:处理字符的输入和输出。他采用的是Unicode编码,可以实现国际化。使用字符流的另外一个好处就是:字符流比字节流更有效率。字节流类功能简单介绍DataInputStream包含了读取Java标准数据类型的输入流DataOutputStream包含了写Java标准数据类型的输出流ByteArrayInputStream从字节数组读取的输入流ByteArrayOutputStream写入字节数组的输出流FileInputStream从文件读入的输入流FileOutputStream写入文件的输出流PrintStream包含最常见的Print()和Println()的输出流PushbackInputStream返回一个字节到输入流,主要用于编译器的实现PipedInputStream输出管道PipedOutputStream输入管道SequenceInputStream将n个输入流联合起来,一个接一个按一定顺序读取RandomAccessFile随机访问文件BufferInputStream缓冲输入流BufferOutputStream缓冲输出流FilterInputStream实现了InputStream InterfaceFilterOutputStream实现了OutputStream InterfaceInputStream抽象类,描述流的输入OutputStream抽象类,描述流的输入 例子3import java.io.File;import java.io.IOException;import java.io.FileOutputStream;import java.io.FileInputStream;import java.io.FileNotFoundException;public class StreamTest public static void main(String args) StreamTest st = new StreamTest();String writeStr = Hello World!rn你好!;String fileName = outFile.txt;st.OutputTest(fileName,writeStr);st.InputTest(fileName);/字节-读private void InputTest(String fileName) File f = createFile(fileName);/创建文件对象FileInputStream fis;byte b = new byte100;/try System.out.println(创建输入流.);fis = new FileInputStream(f);System.out.println(创建输入流完成);System.out.println(开始读取.);fis.read(b);/读取100个字节放在b中,通常读取的长度为b的长度,返回值为 实际读取的字节长度System.out.println(读取完成);String str = new String(b);System.out.println(读取内容输出:n+str);fis.close();/关闭数据流catch(FileNotFoundException e) System.out.println(文件没有找到);catch(IOException e) System.out.println(读取失败);/字节-写private void OutputTest(String fileName,String text) File

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论