JavaIO操作读写追加删除移动复制修改Word格式.docx
《JavaIO操作读写追加删除移动复制修改Word格式.docx》由会员分享,可在线阅读,更多相关《JavaIO操作读写追加删除移动复制修改Word格式.docx(22页珍藏版)》请在冰豆网上搜索。
//
一次读一个字节
21.
FileInputStream(file);
22.
int
tempbyte;
23.
while((tempbyte=in。
read())
!
-1){
24.
out。
write(tempbyte);
25.
}
26.
in。
close();
27.
catch
(IOException
e)
28.
e.printStackTrace();
29.
return;
30.
}
31.
32.
out.println("
以字节为单位读取文件内容,一次读多个字节:
"
);
33.
//一次读多个字节
34.
byte[]
tempbytes
byte[100];
35.
byteread
0;
36.
FileInputStream(fileName);
37.
ReadFromFile.showAvailableBytes(in);
38.
//读入多个字节到字节数组中,byteread为一次读入的字节数
39.
while
((byteread
in.read(tempbytes))
—1){
40.
System.out。
write(tempbytes,
0,
byteread);
41.
42.
(Exception
e1)
43.
e1.printStackTrace();
44.
finally
45.
if
(in
!
null){
46.
47.
48.
49.
50.
51.
52.}
53./**
54.
以字符为单位读取文件,常用于读文本,数字等类型的文件
55.
文件名
56.
*/
57.public
readFileByChars(String
58.
File(fileName);
59.
Reader
reader
null;
60.
61.
out.println(”以字符为单位读取文件内容,一次读一个字节:
62.
一次读一个字符
63.
InputStreamReader(new
FileInputStream(file));
64.
tempchar;
65.
((tempchar
reader.read())
66.
//对于windows下,/r/n这两个字符在一起时,表示一个换行。
67.
//但如果这两个字符分开显示时,会换两次行。
68.
//因此,屏蔽掉/r,或者屏蔽/n。
否则,将会多出很多空行。
69.
(((char)tempchar)
’/r'
){
70.
print((char)tempchar);
71.
72.
73.
reader.close();
74.
75.
76.
77.
78.
println(”以字符为单位读取文件内容,一次读多个字节:
79.
//一次读多个字符
80.
char[]
tempchars
char[30];
81.
charread
82.
FileInputStream(fileName));
83.
//读入多个字符到字符数组中,charread为一次读取字符数
84.
((charread
reader.read(tempchars))!
=—1){
85.
//同样屏蔽掉/r不显示
86.
==
tempchars.length)&&(tempchars[tempchars。
length—1]
'
/r’)){
87.
out.print(tempchars);
88.
}else{
89.
for
(int
i=0;
i<
charread;
i++){
90.
if(tempchars[i]
’/r’){
91.
continue;
92.
93.
out.print(tempchars[i]);
94.
95.
96.
97.
98.
99.
100.
e1。
printStackTrace();
101.
}finally
102.
(reader
103.
104.
105.
106.
107.
108.
109.}
110./**
111.
以行为单位读取文件,常用于读面向行的格式化文件
112.
113.
114.public
readFileByLines(String
fileName){
115.
116.
BufferedReader
117.
118.
System.out.println("
以行为单位读取文件内容,一次读一整行:
);
119.
BufferedReader(new
FileReader(file));
120.
String
tempString
121.
line
1;
122.
//一次读入一行,直到读入null为文件结束
123.
((tempString
reader.readLine())
124.
//显示行号
125.
println("
”
+
:
tempString);
126.
line++;
127.
128.
129.
130.
e。
131.
132.
null){
133.
134.
135.
136.
137.
138.
139.}
140./**
141.
随机读取文件内容
142.
143.
144.public
readFileByRandomAccess(String
145.
RandomAccessFile
randomFile
146.
147.
随机读取一段文件内容:
148.
打开一个随机访问文件流,按只读方式
149.
RandomAccessFile(fileName,
”r”);
150.
文件长度,字节数
151.
long
fileLength
randomFile.length();
152.
读文件的起始位置
153.
beginIndex
(fileLength
〉
4)
?
4
:
154.
//将读文件的开始位置移到beginIndex位置.
155.
randomFile.seek(beginIndex);
156.
byte[]
bytes
byte[10];
157.
158.
//一次读10个字节,如果文件内容不足10个字节,则读剩下的字节.
159.
//将一次读取的字节数赋给byteread
160.
randomFile。
read(bytes))
-1){
161.
write(bytes,
byteread);
162.
163.
e){
164.
165.
166.
(randomFile
167.
168.
randomFile.close();
169.
170.
171.
172.
173.}
174./**
175.
显示输入流中还剩的字节数
176.
177.
178.private
showAvailableBytes(InputStream
in){
179.
180.
println(”当前字节输入流中的字节数为:
in.available());
181.
182.
183.
184.}
185.
186.public
main(String[]
args)
187.
C:
/temp/newTemp.txt”;
188.
ReadFromFile。
readFileByBytes(fileName);
189.
ReadFromFile.readFileByChars(fileName);
190.
readFileByLines(fileName);
191.
ReadFromFile.readFileByRandomAccess(fileName);
192.}
193.}
194.
195.
196.
197.二、将内容追加到文件尾部
198.
199.import
java.io.FileWriter;
200.import
io.IOException;
201.import
io.RandomAccessFile;
202.
203./**
204.*
将内容追加到文件尾部
205.*/
206.public
AppendToFile
207.
208./**
209.
A方法追加文件:
使用RandomAccessFile
210.
@param
211.
content
追加的内容
212.
213.public
appendMethodA(String
fileName,
content){
214.
215.
打开一个随机访问文件流,按读写方式
216.
RandomAccessFile(fileName,
”rw”);
217.
218.
219.
//将写文件指针移到文件尾。
220.
seek(fileLength);
221.
randomFile.writeBytes(content);
222.
223.
224.
225.
226.}
227./**
228.
B方法追加文件:
使用FileWriter
229.
230.
231.
232.public
appendMethodB(String
fileName,
content){
233.
234.
//打开一个写文件器,构造函数中的第二个参数true表示以追加形式写文件
235.
FileWriter
writer
FileWriter(fileName,
true);
236.
writer.write(content);
237.
writer.close();
238.
239.
e.printStackTrace();
240.
241.}
242.
243.public
main(String[]
244.
C:
/temp/newTemp。
txt”;
245.
”new
append!
”;
246.
//按方法A追加文件
247.
AppendToFile。
appendMethodA(fileName,
content);
248.
AppendToFile.appendMethodA(fileName,
append
end.
/n”);
249.
//显示文件内容
250.
ReadFromFile.readFileByLines(fileName);
251.
//按方法B追加文件
252.
appendMethodB(fileName,
253.
AppendToFile.appendMethodB(fileName,
/n”);
254.
255.
256.}
257.}
258.
259.三文件的各种操作类
260.
261.import
io.*;
262.
263./**
264.*
FileOperate。
java
265.*
文件的各种操作
266.*
@author
杨彩
http:
//。
cn/m/yangcai
267.*
文件操作
1.0
268.*/
269.
270.public
FileOperate
271.{
272.
273.public
FileOperate()
274.{
275.}
276./**
277.*
新建目录
278.*/
279.public
newFolder(String
folderPath)
280.{
281.try
282.{
283.String
filePath
folderPath;
284.filePath
filePath。
toString();
285.File
myFilePath
File(filePath);
286.if(!
myFilePath。
exists())
287.{
288.myFilePath。
mkdir();
289.}
290.System。
新建目录操作
成功执行"
291.}
292.catch(Exception
293.{
294.System.out.println("
新建目录操作出错”);
295.e。
printStackTrace();
296.}
297.}
298./**
299.*
新建文件
300.*/
301.public
newFile(String
filePathAndName,
fileContent)
302.{
303.try
304.{
305.String
filePathAndName;
306.filePath
filePath.toString();
307.File
File(filePath);
308.if
(!
309.{
310.myFilePath.createNewFile();
311.}
312.FileWriter
resultFile
FileWriter(myFilePath);
313.PrintWriter
myFile
PrintWriter(resultFile);
314.String
strContent
fileContent;
315.myFile.println(strContent);
316.resultFile.close();
317.System。
新建文件操作
318.}
319.catch
320.{
321.System.out。
println(”新建目录操作出错”);
322.e。
323.}
324.}
325./**
326.*
删除文件
327.*/
328.public
delFile(String
filePathAndName)
329.{
330.try
331.{
332.String
333.filePath
334.File
myDelFile
335.myDelFile.delete();
336.System。
out.println(”删除文件操作
337.}
338.catch
339.{
340.System。
删除文件操作出错”);
341.e.printStackTr