java读取文件数据进行一些简单处理的例子
来源:互联网 发布:淘宝 sc 查询 编辑:程序博客网 时间:2024/05/21 11:21
接触java语言要使用到读取文件一些知识,搜索到一些例子,自己好好体会一下,自己整理了出来就贴在这里吧.希望大家勿喷.
例子:
/*Java文件操作:按行读取和写入 文件操作是任何语言中最为常用的部分,Java也不例外。这里主要介绍按行读取的文件操作和写入 */import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;public class JavaFile{public static void main(String[] args){try{// read file content from fileStringBuffer sb = new StringBuffer("");FileReader reader = new FileReader("c://testRead.txt");BufferedReader br = new BufferedReader(reader);String str = null;while ((str = br.readLine()) != null){sb.append(str + "\n");System.out.println(str);}br.close();reader.close();// write string to fileFileWriter writer = new FileWriter("c://testWrite.txt");BufferedWriter bw = new BufferedWriter(writer);bw.write(sb.toString());bw.close();writer.close();} catch (FileNotFoundException e){e.printStackTrace();} catch (IOException e){e.printStackTrace();}}}
例子:
/* * 这是百度知道里面的一个问题:我觉得不错,自己也运行修改了一下,就发布一下以后备用. * 题目:java 按行读取txt文件的数字 * 文件file4.txt中(数据是按行排列的,每行一个数值) * 1234 * 90.7 * 78.8 * 4567 * 87.3 * 65.6 *现在要建立一个数组double类型,把file4中所有的数字都写入到这个数组中,请问该怎么编写,谢谢。 */import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.io.IOException;import java.util.ArrayList;import java.util.List;public class test{public static double[] writeToDat(String path){File file = new File(path);List<String> list = new ArrayList<String>();double[] nums = null;try{BufferedReader bw = new BufferedReader(new FileReader(file));String line = null;// 因为不知道有几行数据,所以先存入list集合中while ((line = bw.readLine()) != null){list.add(line);}bw.close();} catch (IOException e){e.printStackTrace();}// 确定数组长度nums = new double[list.size()];for (int i = 0; i < list.size(); i++){String s = list.get(i);nums[i] = Double.parseDouble(s);}return nums;}public static void main(String[] args){String path = "d:/file4.txt";double[] nums = writeToDat(path);for (int i = 0; i < nums.length; i++){System.out.println(nums[i]);}}}
第二个例子个人比较喜欢,这个例子复杂多了.各位请看:
/* * JAVA中如何读取TXT文件数据并计算。。。。帮帮我吧 要用JAVA写个东西读取TXT中的数据 且要计算出平均值和总值 最后还要按总值排序。 有高手帮帮我吗? 先谢谢了 TXT的文件如下学号 姓名 语文 数学 英语 平均值 总值 排序1 李守东 83 73 752 徐贤坤 58 58 873 钱云宋 41 86 904 陈平 83 43 655 金荣权 93 88 636 陈如棉 99 93 437 章可可 98 62 728 陈伟奔 87 43 769 张如祥 69 58 7810 丁尚游 80 56 5711 林宏旦 91 90 7612 曾上腾 100 96 5413 谢作品 82 100 5514 温从卫 73 46 10115 李明察 81 41 7516 彭鸿威 46 46 8917 翁文秀 57 43 5818 陈家伟 63 58 9819 温正考 100 64 5720 周文湘 50 50 7921 吴杰 65 65 8322 赖登城 60 79 5323 聂树露 51 76 4524 张雅琴 68 95 5625 曾瑞约 88 63 5826 王志强 96 79 7827 徐贤所 66 46 7428 陈祥枭 82 96 9129 温婷婷 41 73 9630 应孔余 66 81 7131 宋成取 71 68 6232 黄益省 65 56 4333 陈思文 55 100 4434 上官福新 64 62 7035 钟国横 49 69 5636 林型涨 78 73 50各位大哥 能详细点嘛?我才学JAVA 属菜的不能再菜的。。。能给个写好的吗? */import java.io.BufferedReader;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;import java.io.PrintWriter;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;public class test{public static void main(String[] args){// 传入参数为文件目录GetDataProcess("d:/a.txt");}public static void GetDataProcess(String filePath){BufferedReader br = null;try{br = new BufferedReader(new FileReader(filePath));} catch (FileNotFoundException e){e.printStackTrace();return;}String[] columnName ={ "Id", "Name", "Languages", "Math", "English" }; // 列名int[] courseIndexs ={ 2, 3, 4 }; // 课程对应的列int i, j, index;String line;List<Map<String, Object>> students = new ArrayList<Map<String, Object>>();// 记录Id和总值,用于排序List<Map<String, Object>> sortList = new ArrayList<Map<String, Object>>();try{br.readLine(); // 去掉第一行while ((line = br.readLine()) != null){index = 0;String[] se = line.split(" ");Map<String, Object> student = new HashMap<String, Object>();for (i = 0; i < se.length; i++){if ("".equals(se[i])){continue;}if (index >= columnName.length){continue;}student.put(columnName[index], se[i]);index++;}// 计算平均值,总值double total = 0;for (j = 0; j < courseIndexs.length; j++){total += Double.parseDouble((String) student.get(columnName[courseIndexs[j]]));}double average = total / courseIndexs.length;// 只取一位小数average = Math.round(average * 10) / 10;student.put("Total", total);student.put("Average", average);Map<String, Object> sort = new HashMap<String, Object>();sort.put("Id", student.get("Id"));sort.put("Total", student.get("Total"));sortList.add(sort);students.add(student);}br.close();// 排序for (i = 0; i < sortList.size(); i++){for (j = i + 1; j < sortList.size(); j++){if ((Double) sortList.get(i).get("Total") < (Double) sortList.get(j).get("Total")){Map<String, Object> temp = sortList.get(i);sortList.set(i, sortList.get(j));sortList.set(j, temp);}}}Map<Object, Integer> sortedId = new HashMap<Object, Integer>();for (i = 0; i < sortList.size(); i++){sortedId.put(sortList.get(i).get("Id"), i + 1);}// 设定序号for (j = 0; j < students.size(); j++){students.get(j).put("Order",sortedId.get(students.get(j).get("Id")));}// 输出(写到原文件)// PrintWriter pw = new PrintWriter(new File(filePath));// 输出(写到其他文件)PrintWriter pw = new PrintWriter(new File("D:/b.txt"));pw.println("Id\tName\tLan\tMath\tEnglish\tAverage\tTotal\tSort");int cIndex;for (i = 0; i < students.size(); i++){Map<String, Object> st = students.get(i);cIndex = 0;pw.println(st.get(columnName[cIndex++]) + "\t"+ st.get(columnName[cIndex++]) + "\t"+ st.get(columnName[cIndex++]) + "\t"+ st.get(columnName[cIndex++]) + "\t"+ st.get(columnName[cIndex++]) + "\t" + st.get("Total")+ "\t" + st.get("Average") + "\t" + st.get("Order"));}pw.flush();pw.close();} catch (IOException e){e.printStackTrace();}}}/*最后生成文件"b.txt"的内容如下:IdNameLanMathEnglishAverageTotalSort1李守东837375231.077.092徐贤坤585887203.067.0213钱云宋418690217.072.0154陈平834365191.063.0295金荣权938863244.081.056陈如棉999343235.078.077章可可986272232.077.088陈伟奔874376206.068.0199张如祥695878205.068.02010丁尚游805657193.064.02711林宏旦919076257.085.0212曾上腾1009654250.083.0413谢作品8210055237.079.0614温从卫7346101220.073.01115李明察814175197.065.02516彭鸿威464689181.060.03117翁文秀574358158.052.03618陈家伟635898219.073.01219温正考1006457221.073.01020周文湘505079179.059.03221吴杰656583213.071.01622赖登城607953192.064.02823聂树露517645172.057.03424张雅琴689556219.073.01325曾瑞约886358209.069.01826王志强967978253.084.0327徐贤所664674186.062.03028陈祥枭829691269.089.0129温婷婷417396210.070.01730应孔余668171218.072.01431宋成取716862201.067.02232黄益省655643164.054.03533陈思文5510044199.066.02434上官福新646270196.065.02635钟国横496956174.058.03336林型涨787350201.067.023 */*/
- java读取文件数据进行一些简单处理的例子
- java读取文件数据进行一些简单处理的例子
- JAVA简单的zip文档 文件读取例子
- Java读取文件夹下的文件并进行处理
- 用Java控制SQL进行一些简单的处理
- java遍历文件夹读取文件进行处理
- java读取文件进行业务处理
- java读取文件进行业务处理
- Ajax的一个简单例子--从一个文件文件中读取数据显示到页面中
- 一个综合泛型编程,文件读取和异常处理的简单例子
- 读取省市区文件,并对文件内的数据进行处理和存储
- 用Java简单的读取pdf文件中的数据
- 用Java简单的读取pdf文件中的数据
- 用Java简单的读取pdf文件中的数据:
- ashx获取处理数据的简单例子
- C#多线程处理文件的简单例子
- java中属性文件读取的例子
- 利用Java的FileReader类读取文件内容的简单例子
- 关于C++中三种继承方式的讨论(公有继承,私有继承,保护继承)
- 正则表达式参考手册
- Java字符串问题Top10
- 用dos命令破除unix管理员口令
- [Erlang 0009] Erlang 杂记
- java读取文件数据进行一些简单处理的例子
- c++ extern 示例
- mootools 的源代码TYPE 及Class解析
- BCB修改Console重新默认图标
- Linux 内核参数 和 Oracle相关参数调整 .
- centos下读取某个文件的头几行或末几行 (head 、tail)
- 网站asp漏洞小总结
- javaweb三大框架SSH解读
- 系统总结