借鉴了项目以前的文件写入功能,实现了对文件读写操作的封装
仅仅需要在读写方法传入路径即可(可以是绝对或相对路径)
以后使用时,可以在此基础上改进,比如:
写操作:
1,对java GUI中文本框中的内容进行捕获,放在txt文本文档中
2,对各种类型数据都以字符串的形式逐行写入
3,对全局数组的内容进行写入
读操作:
获取文件行数
对逐行字符串型数据进行类型转换,放入二维数组中
为后面算法处理提供入口,但是要小心的是:不可以将行数用全局变量做计数器,否则每次读入是全局变量累加出错,应重新开始读取
1 import java.io.BufferedReader; 2 import java.io.BufferedWriter; 3 import java.io.File; 4 import java.io.FileReader; 5 import java.io.FileWriter; 6 import java.io.IOException; 7 8 public class ReadTextFile { 9 public BufferedReader bufread; 10 public BufferedWriter bufwriter; 11 File writefile; 12 String filepath, filecontent, read; 13 String readContent = "" ; 14 // 从文本文件中读取内容 15 public String readfile(String path) 16 { 17 try { 18 filepath = path; // 得到文本文件的路径 19 File file = new File(filepath); 20 FileReader fileread = new FileReader(file); 21 bufread = new BufferedReader(fileread); 22 while ((read = bufread.readLine()) != null ) { 23 read = read + " " ; //读取的每一行都加了换行符 24 readContent = readContent + read; 25 } 26 } catch (Exception d) { 27 System.out.println(d.getMessage()); 28 } 29 return readContent; // 返回从文本文件中读取内容 30 } 31 public void writeFile(String path) { 32 33 try { 34 BufferedWriter writer = new BufferedWriter(new FileWriter(path)); // 如果文本文件不存在则创建它 35 for(int i=0;i<256;i++){ 36 for(int j=0;j<7;j++){ 37 38 writer.write(Math.random()+" "); 39 } 40 writer.newLine(); 41 } 42 //使用缓冲区中的方法,将数据刷新到目的地文件中去。 43 writer.flush(); 44 //关闭缓冲区,同时关闭了writer流对象 45 writer.close(); 46 }catch (IOException e) { 47 // TODO Auto-generated catch block 48 e.printStackTrace(); 49 } 50 } 51 52 53 54 public static void main(String[] args) throws Exception { 55 ReadTextFile parse = new ReadTextFile(); 56 // 写文件 57 parse.writeFile( "D:/radar.txt"); 58 //读文件(主要实现将整个文本读取出来,或读取文件函数返回字符串类型,或将每一行读取后放入全局字符串数组中) 59 String filecontent = parse.readfile( "D:/radar.txt" ); 60 61 System.out.println(filecontent); 62 63 64 } 65 }
当然,也可以将读写的路径用一个全局静态变量字符串来保存,只是不利于分离使用,故此处省略。