版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、、多种方式读文件内容。1、按字节读取文件内容2、按字符读取文件内容3、按行读取文件内容4、随机读取文件内容 import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileReader;import java.io.IOException;import java.io.InputStream; import java.io.InputStreamReader; import java.io.RandomAccessFile;import java.io.Rea
2、der;public class ReadFromFile * 以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。* param fileName 文件的名*/ public static void readFileByBytes(String fileName)File file = new File(fileName);InputStream in = null;try System.out.println( 以字节为单位读取文件内容,一次读一个字节: ); / 一次读一个字节in = new FileInputStream(file);int tempbyte;whil
3、e(tempbyte=in.read() != -1)System.out.write(tempbyte);in.close(); catch (IOException e) e.printStackTrace(); return;try System.out.println( 以字节为单位读取文件内容,一次读多个字节: ); /一次读多个字节byte tempbytes = new byte100;int byteread = 0;in = new FileInputStream(fileName);ReadFromFile.showAvailableBytes(in);/读入多个字节到字节
4、数组中, byteread 为一次读入的字节数 while (byteread = in.read(tempbytes) != -1)System.out.write(tempbytes, 0, byteread); catch (Exception e1) e1.printStackTrace(); finally if (in != null)try in.close(); catch (IOException e1) /* 以字符为单位读取文件,常用于读文本,数字等类型的文件* param fileName 文件名*/public static void readFileByChars(
5、String fileName)File file = new File(fileName);Reader reader = null;try System.out.println( 以字符为单位读取文件内容,一次读一个字节: );/ 一次读一个字符reader = new InputStreamReader(new FileInputStream(file);int tempchar;while (tempchar = reader.read() != -1)/ 对于 windows 下,这两个字符在一起时,表示一个换行。 /但如果这两个字符分开显示时,会换两次行。 /因此,屏蔽掉,或者屏蔽
6、。否则,将会多出很多空行。 if (char)tempchar) != )System.out.print(char)tempchar);reader.close(); catch (Exception e) e.printStackTrace();try System.out.println( 以字符为单位读取文件内容,一次读多个字节: );/一次读多个字符char tempchars = new char30;int charread = 0;reader = new InputStreamReader(new FileInputStream(fileName); /读入多个字符到字符数组
7、中, charread 为一次读取字符数 while (charread = reader.read(tempchars)!=-1)/同样屏蔽掉不显示if (charread = tempchars.length)&(tempcharstempchars.length-1 != ) System.out.print(tempchars);elsefor (int i=0; i 4) ? 4 : 0;/将读文件的开始位置移到 beginIndex 位置。 randomFile.seek(beginIndex);byte bytes = new byte10;int byteread = 0;/一
8、次读 10 个字节,如果文件内容不足 10 个字节,则读剩下的字节。 /将一次读取的字节数赋给 bytereadwhile (byteread = randomFile.read(bytes) != -1)System.out.write(bytes, 0, byteread); catch (IOException e) e.printStackTrace(); finally if (randomFile != null)try randomFile.close(); catch (IOException e1) /* 显示输入流中还剩的字节数* param in*/ private st
9、atic void showAvailableBytes(InputStream in)try System.out.println( 当前字节输入流中的字节数为 : + in.available(); catch (IOException e) e.printStackTrace();public static void main(String args) String fileName = C:/temp/newTemp.txt;ReadFromFile.readFileByBytes(fileName); ReadFromFile.readFileByChars(fileName);Re
10、adFromFile.readFileByLines(fileName);ReadFromFile.readFileByRandomAccess(fileName); 二、将内容追加到文件尾部import java.io.FileWriter;import java.io.IOException;import java.io.RandomAccessFile;* 将内容追加到文件尾部*/public class AppendToFile * A 方法追加文件:使用 RandomAccessFile* param fileName 文件名* param content 追加的内容*/public
11、 static void appendMethodA(String fileName, String content)try / 打开一个随机访问文件流,按读写方式RandomAccessFile randomFile = new RandomAccessFile(fileName, rw);/ 文件长度,字节数long fileLength = randomFile.length(); /将写文件指针移到文件尾。 randomFile.seek(fileLength); randomFile.writeBytes(content); randomFile.close(); catch (IO
12、Exception e) e.printStackTrace();/* B 方法追加文件:使用 FileWriter* param fileName* param content*/ public static void appendMethodB(String fileName, String content)try /打开一个写文件器,构造函数中的第二个参数true 表示以追加形式写文件FileWriter writer = new FileWriter(fileName, true);writer.write(content);writer.close(); catch (IOExcep
13、tion e) e.printStackTrace();public static void main(String args) String fileName = C:/temp/newTemp.txt;String content = new append!;/ 按方法 A 追加文件AppendToFile.appendMethodA(fileName, content);AppendToFile.appendMethodA(fileName, append end. ); /显示文件内容ReadFromFile.readFileByLines(fileName);/ 按方法 B 追加文件
14、AppendToFile.appendMethodB(fileName, content);AppendToFile.appendMethodB(fileName, append end. ); /显示文件内容ReadFromFile.readFileByLines(fileName);三文件的各种操作类 import java.io.*;/* * FileOperate.java* 文件的各种操作* author 杨彩 /m/yangcai* 文件操作 1.0*/ public class FileOperate public FileOperat
15、e()/* 新建目录*/ public void newFolder(String folderPath)tryString filePath = folderPath;filePath = filePath.toString();File myFilePath = new File(filePath); if(!myFilePath.exists()myFilePath.mkdir();System.out.println( 新建目录操作 成功执行 ); catch(Exception e)System.out.println( 新建目录操作出错 ); e.printStackTrace()
16、;/* 新建文件*/ public void newFile(String filePathAndName, String fileContent) tryString filePath = filePathAndName; filePath = filePath.toString();File myFilePath = new File(filePath);if (!myFilePath.exists()myFilePath.createNewFile();FileWriter resultFile = new FileWriter(myFilePath); PrintWriter myFi
17、le = new PrintWriter(resultFile);String strContent = fileContent; myFile.println(strContent); resultFile.close();System.out.println( 新建文件操作 成功执行 ); catch (Exception e)System.out.println( 新建目录操作出错 ); e.printStackTrace();* 删除文件*/ public void delFile(String filePathAndName)tryString filePath = filePath
18、AndName;filePath = filePath.toString();File myDelFile = new File(filePath); myDelFile.delete();System.out.println( 删除文件操作 成功执行 ); catch (Exception e)System.out.println( 删除文件操作出错 ); e.printStackTrace();/* 删除文件夹*/ public void delFolder(String folderPath) trydelAllFile(folderPath); / 删除完里面所有内容String fi
19、lePath = folderPath;filePath = filePath.toString();成功执行 );执行失败 );File myFilePath = new File(filePath); if(myFilePath.delete() / 删除空文件夹 System.out.println( 删除文件夹 + folderPath + 操作 else System.out.println( 删除文件夹 + folderPath + 操作 catch (Exception e)System.out.println( 删除文件夹操作出错 ); e.printStackTrace();
20、/* 删除文件夹里面的所有文件* param path String 文件夹路径 如 c:/fqf*/public void delAllFile(String path)File file = new File(path);if(!file.exists()return;if(!file.isDirectory()return;String tempList = file.list();File temp = null;for (int i = 0; i tempList.length; i+)if(path.endsWith(File.separator)temp = new File(p
21、ath + tempListi);elsetemp = new File(path + File.separator + tempListi);if (temp.isFile()temp.delete();if (temp.isDirectory()/delAllFile(path+/+ tempListi);/ 先删除文件夹里面的文件 delFolder(path+ File.separatorChar + tempListi);/ 再删除空文件夹 System.out.println( 删除文件操作 成功执行 );/* 复制单个文件* param oldPath String 原文件路径
22、如: c:/fqf.txt* param newPath String 复制后路径 如: f:/fqf.txt*/public void copyFile(String oldPath, String newPath) tryint bytesum = 0;int byteread = 0;File oldfile = new File(oldPath);if (oldfile.exists()/文件存在时InputStream inStream = new FileInputStream(oldPath); / 读入原文件 FileOutputStream fs = new FileOutp
23、utStream(newPath); byte buffer = new byte1444;while ( (byteread = inStream.read(buffer) != -1) bytesum += byteread; / 字节数 文件大小 System.out.println(bytesum);fs.write(buffer, 0, byteread); inStream.close();System.out.println( 删除文件夹操作 成功执行 );catch (Exception e) System.out.println( 复制单个文件操作出错 );e.printSt
24、ackTrace();/* 复制整个文件夹内容* param oldPath String 原文件路径 如: c:/fqf* param newPath String 复制后路径 如: f:/fqf/ff*/public void copyFolder(String oldPath, String newPath)try(new File(newPath).mkdirs(); / 如果文件夹不存在 则建立新文件夹 File a=new File(oldPath);String file=a.list();File temp=null;for (int i = 0; i file.length;
25、 i+) if(oldPath.endsWith(File.separator)temp=new File(oldPath+filei);elsetemp=new File(oldPath+File.separator+filei); if(temp.isFile()FileInputStream input = new FileInputStream(temp);FileOutputStream output = new FileOutputStream(newPath + / + (temp.getName().toString();byte b = new byte1024 * 5;in
26、t len;while ( (len = input.read(b) != -1) output.write(b, 0, len); output.flush(); output.close(); input.close(); if(temp.isDirectory() /如果是子文件夹copyFolder(oldPath+/+filei,newPath+/+filei);System.out.println( 复制文件夹操作 成功执行 );catch (Exception e)System.out.println( 复制整个文件夹内容操作出错 );e.printStackTrace();/*
27、 移动文件到指定目录* param oldPath String 如: c:/fqf.txt* param newPath String 如: d:/fqf.txt*/ public void moveFile(String oldPath, String newPath) copyFile(oldPath, newPath); delFile(oldPath);/* 移动文件到指定目录* param oldPath String 如: c:/fqf.txt* param newPath String 如: d:/fqf.txt */ public void moveFolder(String
28、 oldPath, String newPath) copyFolder(oldPath, newPath);delFolder(oldPath); public static void main(String args) System.out.println( 使用此功能请按1功能一:System.out.println( 使用此功能请按2功能二:System.out.println( 使用此功能请按3功能三:System.out.println( 使用此功能请按4功能四:System.out.println( 使用此功能请按5功能五:System.out.println( 使用此功能请按6
29、功能六:System.out.println( 使用此功能请按7功能七:System.out.println( 使用此功能请按8功能八:System.out.println( 使用此功能请按9功能九:boolean exitnow=false;String aa,bb;新建目录 ); 新建文件 );删除文件 ); 删除文件夹 ););删除文件夹里面的所有文件 复制文件 );复制文件夹的所有内容 ); 移动文件到指定目录 ); 移动文件夹到指定目录 );System.out.println( 使用此功能请按 10 退出程序 );while(!exitnow)FileOperate fo=new
30、FileOperate();tryBufferedReader Bin=new BufferedReader(new InputStreamReader(System.in);String a=Bin.readLine();int b=Integer.parseInt(a);switch(b)case 1:System.out.println( 你选择了功能一 请输入目录名 ); aa=Bin.readLine();fo.newFolder(aa);break;case 2:System.out.println( 你选择了功能二 请输入文件名 );aa=Bin.readLine();Syste
31、m.out.println( 请输入在 +aa+ 中的内容 );bb=Bin.readLine();fo.newFile(aa,bb);break;case 3:System.out.println( 你选择了功能三 aa=Bin.readLine();fo.delFile(aa);break;case 4:System.out.println( 你选择了功能四aa=Bin.readLine();fo.delFolder(aa);break;case 5:System.out.println( 你选择了功能五aa=Bin.readLine();fo.delAllFile(aa);break;case 6:System.out.println( 你选择了功能六 aa=Bin.readLine();System.out.println( 请输入目标文件名 );bb=Bin.readLine();fo.copyFile(aa,bb);break;case 7:System.out.println( 你选择了功能七 aa=Bin.readLine();System.out.p
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 玩具车配送货车司机招聘合同
- 居民议事会与社区交通管理
- 电子工程堆场租赁协议
- 滑雪度假村绿化草坪铺设协议
- 教育装备采购电子招投标指南
- 医院绿化景观建设与维护合同
- 建筑加固玻璃钢施工协议
- 庆典活动产权租赁合同
- 咨询公司员工住宿租赁协议
- 航空航天计量基准管理办法
- 公安局市人大代表履职情况报告
- 探析高校图书馆文创产品开发与推广-以清华大学图书馆为例
- 课题结题成果鉴定书.doc
- 大江公司高浓度磷复肥工程可行性研究报告(优秀可研报告)
- 修旧利废实施方案
- 带轴间差速器地分动器特性分析报告材料
- 急诊科护理质量控制措施
- [复习考试资料大全]事业单位考试题库:乡村振兴试题及答案
- 如何做好群团工作
- 保险代理业务及台帐管理制度
- 媒介文化教程第六讲 奇观社会与媒体奇观
评论
0/150
提交评论