1、java IO操作 读写追加删除移动复制等一、多种方式读文件内容。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
2、;import java.io.Reader; 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 FileInputStre
3、am(file); int tempbyte; while(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.
4、showAvailableBytes(in); /读入多个字节到字节数组中,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 文件名
5、 */public static void readFileByChars(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下,rn这两个字符在一起时
6、,表示一个换行。 /但如果这两个字符分开显示时,会换两次行。 /因此,屏蔽掉r,或者屏蔽n。否则,将会多出很多空行。 if (char)tempchar) != r) 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 InputStrea
7、mReader(new FileInputStream(fileName); /读入多个字符到字符数组中,charread为一次读取字符数 while (charread = reader.read(tempchars)!=-1) /同样屏蔽掉r不显示 if (charread = tempchars.length)&(tempcharstempchars.length-1 != r) System.out.print(tempchars); else for (int i=0; i 4) ? 4 : 0; /将读文件的开始位置移到beginIndex位置。 randomFile.seek(b
8、eginIndex); byte bytes = new byte10; int byteread = 0; /一次读10个字节,如果文件内容不足10个字节,则读剩下的字节。 /将一次读取的字节数赋给byteread while (byteread = randomFile.read(bytes) != -1) System.out.write(bytes, 0, byteread); catch (IOException e) e.printStackTrace(); finally if (randomFile != null) try randomFile.close(); catch
9、(IOException e1) /* * 显示输入流中还剩的字节数 * param in */private static 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.readFileB
10、yBytes(fileName); ReadFromFile.readFileByChars(fileName); ReadFromFile.readFileByLines(fileName); ReadFromFile.readFileByRandomAccess(fileName);二、将内容追加到文件尾部import java.io.FileWriter;import java.io.IOException;import java.io.RandomAccessFile;/* 将内容追加到文件尾部*/public class AppendToFile /* * A方法追加文件:使用Ran
11、domAccessFile * param fileName 文件名 * param content 追加的内容 */public static void appendMethodA(String fileName, String content) try / 打开一个随机访问文件流,按读写方式 RandomAccessFile randomFile = new RandomAccessFile(fileName, rw); / 文件长度,字节数 long fileLength = randomFile.length(); /将写文件指针移到文件尾。 randomFile.seek(fileL
12、ength); randomFile.writeBytes(content); randomFile.close(); catch (IOException e) e.printStackTrace(); /* * B方法追加文件:使用FileWriter * param fileName * param content */public static void appendMethodB(String fileName, String content) try /打开一个写文件器,构造函数中的第二个参数true表示以追加形式写文件 FileWriter writer = new FileWr
13、iter(fileName, true); writer.write(content); writer.close(); catch (IOException 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(fileNa
14、me, append end. n); /显示文件内容 ReadFromFile.readFileByLines(fileName); /按方法B追加文件 AppendToFile.appendMethodB(fileName, content); AppendToFile.appendMethodB(fileName, append end. n); /显示文件内容 ReadFromFile.readFileByLines(fileName);三文件的各种操作类import java.io.*;/* FileOperate.java* 文件的各种操作* author 杨彩 * 文件操作 1.
15、0*/public class FileOperatepublic FileOperate()/* 新建目录*/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.p
16、rintln(新建目录操作出错);e.printStackTrace();/* 新建文件*/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 FileWri
17、ter(myFilePath);PrintWriter myFile = 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)trySt
18、ring filePath = filePathAndName;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); /删除完里
19、面所有内容String filePath = 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.printStackTra
20、ce();/* 删除文件夹里面的所有文件* 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 F
21、ile(path + 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 FileOutputStre
23、am(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.printStackTrace();/* 复制整个文件夹内容* param oldPath String 原文件路径 如:c:/
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1