
在工程目录下,输入文件是123txt 输出resulttxt
package zhidao;
import javaioFileNotFoundException;
import javaioIOException;
public class zhidao {
public static void main(String[] args) throws IOException {
int average=0;
int count=0;
String strInput;
javaioBufferedReader reader=new javaioBufferedReader(new javaioFileReader( "\\123txt "));
javaioBufferedWriter writer=new javaioBufferedWriter(new javaioFileWriter( "\\resulttxt "));
if ((strInput=readerreadLine())!=null)
{
String[] strItems = strInputsplit(" ");
for(String item:strItems)
{
average+=IntegerparseInt(item);
count++;
}
}
writerwrite(DoubletoString(average/(count10)));
readerclose();
writerclose();
}
}
java读取文件方法大全
一、多种方式读文件内容。
1、按字节读取文件内容
2、按字符读取文件内容
3、按行读取文件内容
4、随机读取文件内容
Java代码
1 import javaioBufferedReader;
2 import javaioFile;
3 import javaioFileInputStream;
4 import javaioFileReader;
5 import javaioIOException;
6 import javaioInputStream;
7 import javaioInputStreamReader;
8 import javaioRandomAccessFile;
9 import javaioReader;
10
11 public class ReadFromFile {
12 /
13 以字节为单位读取文件,常用于读二进制文件,如、声音、影像等文件。
14
15 @param fileName
16 文件的名
17 /
18 public static void readFileByBytes(String fileName) {
19 File file = new File(fileName);
20 InputStream in = null;
21 try {
22 Systemoutprintln("以字节为单位读取文件内容,一次读一个字节:");
23 // 一次读一个字节
24 in = new FileInputStream(file);
25 int tempbyte;
26 while ((tempbyte = inread()) != -1) {
27 Systemoutwrite(tempbyte);
28 }
29 inclose();
30 } catch (IOException e) {
31 eprintStackTrace();
32 return;
33 }
34 try {
35 Systemoutprintln("以字节为单位读取文件内容,一次读多个字节:");
36 // 一次读多个字节
37 byte[] tempbytes = new byte[100];
38 int byteread = 0;
39 in = new FileInputStream(fileName);
40 ReadFromFileshowAvailableBytes(in);
41 // 读入多个字节到字节数组中,byteread为一次读入的字节数
42 while ((byteread = inread(tempbytes)) != -1) {
43 Systemoutwrite(tempbytes, 0, byteread);
44 }
45 } catch (Exception e1) {
46 e1printStackTrace();
47 } finally {
48 if (in != null) {
49 try {
50 inclose();
51 } catch (IOException e1) {
52 }
53 }
54 }
55 }
56
57 /
58 以字符为单位读取文件,常用于读文本,数字等类型的文件
59
60 @param fileName
61 文件名
62 /
63 public static void readFileByChars(String fileName) {
64 File file = new File(fileName);
65 Reader reader = null;
66 try {
67 Systemoutprintln("以字符为单位读取文件内容,一次读一个字节:");
68 // 一次读一个字符
69 reader = new InputStreamReader(new FileInputStream(file));
70 int tempchar;
71 while ((tempchar = readerread()) != -1) {
72 // 对于windows下,\r\n这两个字符在一起时,表示一个换行。
73 // 但如果这两个字符分开显示时,会换两次行。
74 // 因此,屏蔽掉\r,或者屏蔽\n。否则,将会多出很多空行。
75 if (((char) tempchar) != '\r') {
76 Systemoutprint((char) tempchar);
77 }
78 }
79 readerclose();
80 } catch (Exception e) {
81 eprintStackTrace();
82 }
83 try {
84 Systemoutprintln("以字符为单位读取文件内容,一次读多个字节:");
85 // 一次读多个字符
86 char[] tempchars = new char[30];
87 int charread = 0;
88 reader = new InputStreamReader(new FileInputStream(fileName));
89 // 读入多个字符到字符数组中,charread为一次读取字符数
90 while ((charread = readerread(tempchars)) != -1) {
91 // 同样屏蔽掉\r不显示
92 if ((charread == tempcharslength)
93 && (tempchars[tempcharslength - 1] != '\r')) {
94 Systemoutprint(tempchars);
95 } else {
96 for (int i = 0; i < charread; i++) {
97 if (tempchars[i] == '\r') {
98 continue;
99 } else {
100 Systemoutprint(tempchars[i]);
101 }
102 }
103 }
104 }
105
106 } catch (Exception e1) {
107 e1printStackTrace();
108 } finally {
109 if (reader != null) {
110 try {
111 readerclose();
112 } catch (IOException e1) {
113 }
114 }
115 }
116 }
117
118 /
119 以行为单位读取文件,常用于读面向行的格式化文件
120
121 @param fileName
122 文件名
123 /
124 public static void readFileByLines(String fileName) {
125 File file = new File(fileName);
126 BufferedReader reader = null;
127 try {
128 Systemoutprintln("以行为单位读取文件内容,一次读一整行:");
129 reader = new BufferedReader(new FileReader(file));
130 String tempString = null;
131 int line = 1;
132 // 一次读入一行,直到读入null为文件结束
133 while ((tempString = readerreadLine()) != null) {
134 // 显示行号
135 Systemoutprintln("line " + line + ": " + tempString);
136 line++;
137 }
138 readerclose();
139 } catch (IOException e) {
140 eprintStackTrace();
141 } finally {
142 if (reader != null) {
143 try {
144 readerclose();
145 } catch (IOException e1) {
146 }
147 }
148 }
149 }
150
151 /
152 随机读取文件内容
153
154 @param fileName
155 文件名
156 /
157 public static void readFileByRandomAccess(String fileName) {
158 RandomAccessFile randomFile = null;
159 try {
160 Systemoutprintln("随机读取一段文件内容:");
161 // 打开一个随机访问文件流,按只读方式
162 randomFile = new RandomAccessFile(fileName, "r");
163 // 文件长度,字节数
164 long fileLength = randomFilelength();
165 // 读文件的起始位置
166 int beginIndex = (fileLength > 4) 4 : 0;
167 // 将读文件的开始位置移到beginIndex位置。
168 randomFileseek(beginIndex);
169 byte[] bytes = new byte[10];
170 int byteread = 0;
171 // 一次读10个字节,如果文件内容不足10个字节,则读剩下的字节。
172 // 将一次读取的字节数赋给byteread
173 while ((byteread = randomFileread(bytes)) != -1) {
174 Systemoutwrite(bytes, 0, byteread);
175 }
176 } catch (IOException e) {
177 eprintStackTrace();
178 } finally {
179 if (randomFile != null) {
180 try {
181 randomFileclose();
182 } catch (IOException e1) {
183 }
184 }
185 }
186 }
187
188 /
189 显示输入流中还剩的字节数
190
191 @param in
192 /
193 private static void showAvailableBytes(InputStream in) {
194 try {
195 Systemoutprintln("当前字节输入流中的字节数为:" + inavailable());
196 } catch (IOException e) {
197 eprintStackTrace();
198 }
199 }
200
201 public static void main(String[] args) {
202 String fileName = "C:/temp/newTemptxt";
203 ReadFromFilereadFileByBytes(fileName);
204 ReadFromFilereadFileByChars(fileName);
205 ReadFromFilereadFileByLines(fileName);
206 ReadFromFilereadFileByRandomAccess(fileName);
207 }
208 }
二、将内容追加到文件尾部
1 import javaioFileWriter;
2 import javaioIOException;
3 import javaioRandomAccessFile;
4
5 /
6 将内容追加到文件尾部
7 /
8 public class AppendToFile {
9
10 /
11 A方法追加文件:使用RandomAccessFile
12 @param fileName 文件名
13 @param content 追加的内容
14 /
15 public static void appendMethodA(String fileName, String content) {
16 try {
17 // 打开一个随机访问文件流,按读写方式
18 RandomAccessFile randomFile = new RandomAccessFile(fileName, "rw");
19 // 文件长度,字节数
20 long fileLength = randomFilelength();
21 //将写文件指针移到文件尾。
22 randomFileseek(fileLength);
23 randomFilewriteBytes(content);
24 randomFileclose();
25 } catch (IOException e) {
26 eprintStackTrace();
27 }
28 }
29
30 /
31 B方法追加文件:使用FileWriter
32 @param fileName
33 @param content
34 /
35 public static void appendMethodB(String fileName, String content) {
36 try {
37 //打开一个写文件器,构造函数中的第二个参数true表示以追加形式写文件
38 FileWriter writer = new FileWriter(fileName, true);
39 writerwrite(content);
40 writerclose();
41 } catch (IOException e) {
42 eprintStackTrace();
43 }
44 }
45
46 public static void main(String[] args) {
47 String fileName = "C:/temp/newTemptxt";
48 String content = "new append!";
49 //按方法A追加文件
50 AppendToFileappendMethodA(fileName, content);
51 AppendToFileappendMethodA(fileName, "append end \n");
52 //显示文件内容
53 ReadFromFilereadFileByLines(fileName);
54 //按方法B追加文件
55 AppendToFileappendMethodB(fileName, content);
56 AppendToFileappendMethodB(fileName, "append end \n");
57 //显示文件内容
58 ReadFromFilereadFileByLines(fileName);
59 }
60 }
我写了一段遍历某个文件查找指定文件的,你自己改成你需要的功能。
import javaioFile;
import javautilHashMap;
public class Test1 {
static HashMap<String, String> filelist=new HashMap<String, String>();
/
递归方法
@param path 文件路径
/
public static void find(String path){
File file=new File(path);
File[] files = filelistFiles();
//如果文件数组为null则返回
if (files == null)
return;
for (int i = 0; i < fileslength; i++) {
if (files[i]isDirectory()) {
//判断是不是文件夹,如果是文件夹则继续向下查找文件
find(files[i]getAbsolutePath());
} else {
//记录文件路径
String filePath = files[i]getAbsolutePath()toLowerCase();
//记录文件名
String fileName=files[i]getName()toLowerCase();
// Systemoutprintln("---"+strFileName);
filelistput(fileName, filePath);
}
}
}
public static void main(String[] args) {
//需要遍历的路径,也就是你要查找文件所在的路径
String path="D:\\kpi\\";
find(path);
Systemoutprintln("kpi9的路径:"+filelistget("kpi9"));
//输出结果:d:\kpi\kpi9
}
}
import javaioBufferedReader;
import javaioFile;
import javaioFileNotFoundException;
import javaioFileReader;
import javaioIOException;
import javaioPrintWriter;
import javautilArrayList;
import javautilHashMap;
import javautilList;
import javautilMap;
public class Testa
{
public static void main(String[] args)
{
//传入参数为文件目录
test("d:/atxt");
}
public static void test(String filePath){
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader(filePath));
} catch (FileNotFoundException e) {
eprintStackTrace();
return;
}
String []columnName = {"Id", "Name", "Languages", "Math", "English"}; //列名
int []courseIndexs = {2, 3, 4}; //课程对应的列
int i,j,index;
String line;
List> students = new ArrayList>();
//记录Id和总值,用于排序
List> sortList = new ArrayList>();
try {
brreadLine(); //去掉第一行
while((line = brreadLine()) != null){
index = 0;
String []se = linesplit(" ");
Map student = new HashMap();
for(i = 0; i < selength; i++){
if(""equals(se[i])){
continue;
}
if(index >= columnNamelength){
continue;
}
studentput(columnName[index], se[i]);
index++;
}
//计算平均值,总值
double total = 0;
for(j = 0; j < courseIndexslength; j++){
total += DoubleparseDouble((String) studentget(columnName[courseIndexs[j]]));
}
double average = total / courseIndexslength;
//只取一位小数
average = Mathround(average 10)/10;
studentput("Total", total);
studentput("Average", average);
Map sort = new HashMap();
sortput("Id", studentget("Id"));
sortput("Total", studentget("Total"));
sortListadd(sort);
studentsadd(student);
}
brclose();
//排序
for(i = 0; i < sortListsize(); i++){
for(j = i + 1; j < sortListsize(); j++){
if((Double)sortListget(i)get("Total") < (Double)sortListget(j)get("Total")){
Map temp = sortListget(i);
sortListset(i, sortListget(j));
sortListset(j, temp);
}
}
}
Map sortedId = new HashMap();
for(i = 0; i < sortListsize(); i++){
sortedIdput(sortListget(i)get("Id"), i+1);
}
//设定序号
for(j = 0; j < studentssize(); j++){
studentsget(j)put("Order", sortedIdget(studentsget(j)get("Id")));
}
//输出(写到原文件)
//PrintWriter pw = new PrintWriter(new File(filePath));
//输出(写到其他文件)
PrintWriter pw = new PrintWriter(new File("D:/btxt"));
pwprintln("Id\tName\tLan\tMath\tEnglish\tAverage\tTotal\tSort");
int cIndex;
for(i = 0; i < studentssize(); i++){
Map st = studentsget(i);
cIndex = 0;
pwprintln(stget(columnName[cIndex++]) + "\t" + stget(columnName[cIndex++])
+ "\t" + stget(columnName[cIndex++])+ "\t" + stget(columnName[cIndex++])
+ "\t" + stget(columnName[cIndex++])
+ "\t" + stget("Total")
+ "\t" + stget("Average")
+ "\t" + stget("Order"));
}
pwflush();
pwclose();
} catch (IOException e) {
eprintStackTrace();
}
}
}
Java为安全应用提供了丰富的API,J2SDK14 的JSSE (JavaTM Secure Socket Extension) 包括javaxsecuritycertificate包,并且提供对证书的 *** 作方法,代码如下:
import javaxswing;
import javaawt;
import javaawtevent;
import javaxswingtable;
import javasecuritycertCertificateFactory;
import javasecuritycertX509Certificate;
import javaio;
public class CARead extends JPanel {
private String CA_Name;
private String CA_ItemData[][] = new String[9][2];
private String[] columnNames = {"证书字段标记","内容" };
public CARead(String CertName) {
CA_Name=CertName;
/ 三个Panel用来显示证书内容/
JTabbedPane tabbedPane = new JTabbedPane();
JPanel panelNormal = new JPanel();
tabbedPaneaddTab("普通信息", panelNormal);
JPanel panelAll=new JPanel();
panelAllsetLayout(new BorderLayout());
tabbedPaneaddTab("所有信息",panelAll);
JPanel panelBase64=new JPanel();
panelBase64setLayout(new BorderLayout());
tabbedPaneaddTab("Base64编码信息",panelBase64);
/ 读取证书常规信息 /
Read_Normal(panelNormal);
/ 读取证书文件字符串表示内容 /
Read_Bin(panelAll);
/ 读取证原始Base64编码形式的证书文件 /
Read_Raw(panelBase64);
tabbedPanesetSelectedIndex(0);
setLayout(new GridLayout(1, 1));
add(tabbedPane);
}
}
定义证书信息的读取函数如下:
private int Read_Normal(JPanel panel){
String Field;
try{
CertificateFactory certificate_factory=CertificateFactorygetInstance("X509");
FileInputStream file_inputstream=new FileInputStream(CA_Name);
X509Certificate
x509certificate=(X509Certificate)certificate_factorygenerateCertificate
(file_inputstream);
Field=x509certificategetType();
CA_ItemData[0][0]="类型";
CA_ItemData[0][1]=Field;
Field=IntegertoString(x509certificategetVersion());
CA_ItemData[1][0]="版本";
CA_ItemData[1][1]=Field;
Field=x509certificategetSubjectDN()getName();
CA_ItemData[2][0]="标题";
CA_ItemData[2][1]=Field;
/ 以下类似,这里省略
Field=x509certificategetNotBefore()toString();得到开始有效日期
Field=x509certificate getNotAfter()toString();得到截止日期
Field=x509certificategetSerialNumber()toString(16);得到序列号
Field=x509certificategetIssuerDN()getName();得到发行者名
Field=x509certificategetSigAlgName();得到签名算法
Field=x509certificategetPublicKey()getAlgorithm();得到公钥算法 /
file_inputstreamclose();
final JTable table = new JTable(CA_ItemData, columnNames);
TableColumn tc=null;
tc = tablegetColumnModel()getColumn(1);
tcsetPreferredWidth(600);
paneladd(table);
}catch(Exception exception){
exceptionprintStackTrace();
return -1;
}
return 0;
}
import javaioFile;
import javautilArrays;
public class FileName {
/
@param args
/
public static void main(String[] args) {
// 举例:
String fName =" G:\\Java_Source\\navigation_tigra_menu\\demo1\\img\\lev1_arrowgif ";
// 方法一:
File tempFile =new File( fNametrim());
String fileName = tempFilegetName();
Systemoutprintln("方法一:fileName = " + fileName);
// 方法二:
fName = fNametrim();
// fileName = fNamesubstring(fNamelastIndexOf("/")+1);
// 或者
fileName = fNamesubstring(fNamelastIndexOf("\\")+1);
Systemoutprintln("方法二:fileName = " + fileName);
// 方法三:
fName = fNametrim();
String temp[] = fNamesplit("\\\\"); /split里面必须是正则表达式,"\\"的作用是对字符串转义/
//temp[] = [G:, Java_Source, navigation_tigra_menu, demo1, img, lev1_arrowgif]
Systemoutprintln("temp[] = " + ArraystoString(temp));
fileName = temp[templength-1];
Systemoutprintln("方法三:fileName = " + fileName);
}
}
import javaioBufferedInputStream;
import javaioBufferedReader;
import javaioFile;
import javaioFileInputStream;
import javaioInputStreamReader;
import javaioReader;
public class H {
/
功能:Java读取txt文件的内容
步骤:1:先获得文件句柄
2:获得文件句柄当做是输入一个字节码流,需要对这个输入流进行读取
3:读取到输入流后,需要读取生成字节流
4:一行一行的输出。readline()。
备注:需要考虑的是异常情况
@param filePath
/
public static void readTxtFile(String filePath){
try {
String encoding="GBK";
File file=new File(filePath);
if(fileisFile() && fileexists()){ //判断文件是否存在
InputStreamReader read = new InputStreamReader(
new FileInputStream(file),encoding);//考虑到编码格式
BufferedReader bufferedReader = new BufferedReader(read);
String lineTxt = null;
while((lineTxt = bufferedReaderreadLine()) != null){
Systemoutprintln(lineTxt);
}
readclose();
}else{
Systemoutprintln("找不到指定的文件");
}
} catch (Exception e) {
Systemoutprintln("读取文件内容出错");
eprintStackTrace();
}
}
public static void main(String argv[]){
String filePath = "L:\\20121012txt";
// "res/";
readTxtFile(filePath);
}
}
以上就是关于java读取文件内容计算平均值并输出到新的文件全部的内容,包括:java读取文件内容计算平均值并输出到新的文件、java文件如何读取、java 根据文件获取文件名及路径的方法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)