java读取文件方法大全
一、多种方式读文件内容。
1、按字节读取文件内容
2、按字符读取文件内容
3、按行读取文件内容
4、随机读取文件内容
Java代码
edReader;
;
putStream;
ader;
ption;
tream;
treamReader;
AccessFile;
;
10.
classReadFromFile{
12./**
13.*以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。
14.*
15.*@paramfileName
16.*文件的名
17.*/
staticvoidreadFileByBytes(StringfileName){
le=newFile(fileName);
treamin=null;
{
n("以字节为单位读取文件内容,一次读一个字节:");
23.//一次读一个字节
=newFileInputStream(file);
pbyte;
((tempbyte=())!=-1){
(tempbyte);
28.}
();
30.}catch(IOExceptione){
tackTrace();
;
33.}
{
n("以字节为单位读取文件内容,一次读多个字节:");
36.//一次读多个字节
[]tempbytes=newbyte[100];
eread=0;
=newFileInputStream(fileName);
ailableBytes(in);
41.//读入多个字节到字节数组中,byteread为一次读入的字节数
((byteread=(tempbytes))!=-1){
(tempbytes,0,byteread);
44.}
45.}catch(Exceptione1){
tackTrace();
47.}finally{
(in!=null){
{
();
51.}catch(IOExceptione1){
52.}
53.}
54.}
55.}
56.
57./**
58.*以字符为单位读取文件,常用于读文本,数字等类型的文件
59.*
60.*@paramfileName
61.*文件名
62.*/
staticvoidreadFileByChars(StringfileName){
le=newFile(fileName);
reader=null;
{
n("以字符为单位读取文件内容,一次读一个字节:");
68.//一次读一个字符
=newInputStreamReader(newFileInputStream(file));
pchar;
((tempchar=())!=-1){
72.//对于windows下,rn这两个字符在一起时,表示一个换行。
73.//但如果这两个字符分开显示时,会换两次行。
74.//因此,屏蔽掉r,或者屏蔽n。否则,将会多出很多空行。
(((char)tempchar)!='r'){
((char)tempchar);
77.}
78.}
();
80.}catch(Exceptione){
tackTrace();
82.}
{
n("以字符为单位读取文件内容,一次读多个字节:");
85.//一次读多个字符
[]tempchars=newchar[30];
rread=0;
=newInputStreamReader(newFileInputStream(fileName));
89.//读入多个字符到字符数组中,charread为一次读取字符数
((charread=(tempchars))!=-1){
91.//同样屏蔽掉r不显示
((charread==)
93.&&(tempchars[-1]!='r')){
(tempchars);
95.}el{
(inti=0;i
(tempchars[i]=='r'){
ue;
99.}el{
(tempchars[i]);
101.}
102.}
103.}
104.}
105.
106.}catch(Exceptione1){
tackTrace();
108.}finally{
(reader!=null){
{
();
112.}catch(IOExceptione1){
113.}
114.}
115.}
116.}
117.
118./**
119.*以行为单位读取文件,常用于读面向行的格式化文件
120.*
121.*@paramfileName
122.*文件名
123.*/
staticvoidreadFileByLines(StringfileName){
le=newFile(fileName);
edReaderreader=null;
{
n("以行为单位读取文件内容,一次读一整行:");
=newBufferedReader(newFileReader(file));
tempString=null;
e=1;
132.//一次读入一行,直到读入null为文件结束
((tempString=ne())!=null){
134.//显示行号
n("line"+line+":"+tempString);
++;
137.}
();
139.}catch(IOExceptione){
tackTrace();
141.}finally{
(reader!=null){
{
();
145.}catch(IOExceptione1){
146.}
147.}
148.}
149.}
150.
151./**
152.*随机读取文件内容
153.*
154.*@paramfileName
155.*文件名
156.*/
staticvoidreadFileByRandomAccess(StringfileName){
AccessFilerandomFile=null;
{
n("随机读取一段文件内容:");
161.//打开一个随机访问文件流,按只读方式
File=newRandomAccessFile(fileName,"r");
163.//文件长度,字节数
leLength=();
165.//读文件的起始位置
inIndex=(fileLength>4)?4:0;
167.//将读文件的开始位置移到beginIndex位置。
(beginIndex);
[]bytes=newbyte[10];
eread=0;
171.//一次读10个字节,如果文件内容不足10个字节,则读剩下的字
节。
172.//将一次读取的字节数赋给byteread
((byteread=(bytes))!=-1){
(bytes,0,byteread);
175.}
176.}catch(IOExceptione){
tackTrace();
178.}finally{
(randomFile!=null){
{
();
182.}catch(IOExceptione1){
183.}
184.}
185.}
186.}
187.
188./**
189.*显示输入流中还剩的字节数
190.*
191.*@paramin
192.*/
estaticvoidshowAvailableBytes(InputStreamin){
{
n("当前字节输入流中的字节数为:"+
ble());
196.}catch(IOExceptione){
tackTrace();
198.}
199.}
200.
staticvoidmain(String[]args){
fileName="C:/temp/";
leByBytes(fileName);
leByChars(fileName);
leByLines(fileName);
leByRandomAccess(fileName);
207.}
208.}
二、将内容追加到文件尾部
iter;
ption;
AccessFile;
4.
5./**
6.*将内容追加到文件尾部
7.*/
classAppendToFile{
9.
10./**
11.*A方法追加文件:使用RandomAccessFile
12.*@paramfileName文件名
13.*@paramcontent追加的内容
14.*/
staticvoidappendMethodA(StringfileName,Stringcontent){
{
17.//打开一个随机访问文件流,按读写方式
AccessFilerandomFile
=newRandomAccessFile(fileName,"rw");
19.//文件长度,字节数
leLength=();
21.//将写文件指针移到文件尾。
(fileLength);
ytes(content);
();
25.}catch(IOExceptione){
tackTrace();
27.}
28.}
29.
30./**
31.*B方法追加文件:使用FileWriter
32.*@paramfileName
33.*@paramcontent
34.*/
staticvoidappendMethodB(StringfileName,Stringcontent){
{
37.//打开一个写文件器,构造函数中的第二个参数true表示以追加形式写文件
iterwriter=newFileWriter(fileName,true);
(content);
();
41.}catch(IOExceptione){
tackTrace();
43.}
44.}
45.
staticvoidmain(String[]args){
fileName="C:/temp/";
content="newappend!";
49.//按方法A追加文件
MethodA(fileName,content);
MethodA(fileName,"appendend.n");
52.//显示文件内容
leByLines(fileName);
54.//按方法B追加文件
MethodB(fileName,content);
MethodB(fileName,"appendend.n");
57.//显示文件内容
leByLines(fileName);
59.}
60.}
本文发布于:2023-03-09 22:45:01,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/1678373102198049.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:读取.doc
本文 PDF 下载地址:读取.pdf
留言与评论(共有 0 条评论) |