Java IO流+线程+流程控制语句.docx

上传人:b****5 文档编号:8808989 上传时间:2023-05-15 格式:DOCX 页数:50 大小:103.46KB
下载 相关 举报
Java IO流+线程+流程控制语句.docx_第1页
第1页 / 共50页
Java IO流+线程+流程控制语句.docx_第2页
第2页 / 共50页
Java IO流+线程+流程控制语句.docx_第3页
第3页 / 共50页
Java IO流+线程+流程控制语句.docx_第4页
第4页 / 共50页
Java IO流+线程+流程控制语句.docx_第5页
第5页 / 共50页
Java IO流+线程+流程控制语句.docx_第6页
第6页 / 共50页
Java IO流+线程+流程控制语句.docx_第7页
第7页 / 共50页
Java IO流+线程+流程控制语句.docx_第8页
第8页 / 共50页
Java IO流+线程+流程控制语句.docx_第9页
第9页 / 共50页
Java IO流+线程+流程控制语句.docx_第10页
第10页 / 共50页
Java IO流+线程+流程控制语句.docx_第11页
第11页 / 共50页
Java IO流+线程+流程控制语句.docx_第12页
第12页 / 共50页
Java IO流+线程+流程控制语句.docx_第13页
第13页 / 共50页
Java IO流+线程+流程控制语句.docx_第14页
第14页 / 共50页
Java IO流+线程+流程控制语句.docx_第15页
第15页 / 共50页
Java IO流+线程+流程控制语句.docx_第16页
第16页 / 共50页
Java IO流+线程+流程控制语句.docx_第17页
第17页 / 共50页
Java IO流+线程+流程控制语句.docx_第18页
第18页 / 共50页
Java IO流+线程+流程控制语句.docx_第19页
第19页 / 共50页
Java IO流+线程+流程控制语句.docx_第20页
第20页 / 共50页
亲,该文档总共50页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Java IO流+线程+流程控制语句.docx

《Java IO流+线程+流程控制语句.docx》由会员分享,可在线阅读,更多相关《Java IO流+线程+流程控制语句.docx(50页珍藏版)》请在冰点文库上搜索。

Java IO流+线程+流程控制语句.docx

JavaIO流+线程+流程控制语句

Java-IO

分类:

JavaSE2013-08-2215:

41185人阅读评论(0)收藏举报

目录(?

)[+]

IO

[plain]viewplaincopy

1应用程序需要和外部设备进行数据交互,最常见的外部设备包含磁盘和网络

2IO就是指应用程序对这些设备的数据输入输出

3IO分为两大块

4File类,处理文件本身

5流类,对文件内容进行读写操作

6File

7一个File类的对象,表示了磁盘上的文件或者目录

8File类提供了一些与平台无关的方法来操纵文件

9File类提供了各种方法

10创建删除重命名文件

11判断文件是否存在和读写权限

12设置和查询文件最近修改时间等操作

13不能够编辑文件

创建File对象的几种方法

[java]viewplaincopy

14packagecom.itlwc;

15

16importjava.io.File;

17importjava.io.IOException;

18

19publicclassIO{

20publicstaticvoidmain(String[]args){

21Filefile=newFile("d:

\\文件夹");

22//创建目录(必须的)

23file.mkdir();

24//第一种方法

25Filefile1=newFile("d:

\\文件夹\\a.txt");

26//第二种方法

27Filefile2=newFile("d:

"+File.separatorChar+"文件夹"

28+File.separatorChar+"b.txt");

29//第三种方法

30Filefile3=newFile("d:

","文件夹\\c.txt");

31//第四种方法

32Filefile4=newFile("d:

\\文件夹","d.txt");

33//第五种方法

34Filefile5=newFile(newFile("d:

\\文件夹"),"e.txt");

35try{

36file1.createNewFile();

37file2.createNewFile();

38file3.createNewFile();

39file4.createNewFile();

40file5.createNewFile();

41}catch(IOExceptione){

42e.printStackTrace();

43}

44}

45}

File的常用方法

[java]viewplaincopy

46packagecom.itlwc;

47

48importjava.io.File;

49importjava.io.IOException;

50

51publicclassIO{

52publicstaticvoidmain(String[]args){

53//创建目录

54createDir("d:

\\文件夹");

55//创建文件

56createFile("d:

\\文件夹\\t.txt");

57//删除文件

58deleteFile("d:

\\文件夹\\t.txt");

59//删除目录

60delDirectory(newFile("d:

\\文件夹"));

61}

62

63publicstaticvoidcreateDir(StringpathName){

64Filef=newFile(pathName);

65f.mkdirs();

66//文件或目录是否存在

67if(f.exists()){

68System.out.println("目录创建成功");

69}

70}

71

72publicstaticvoidcreateFile(StringpathName){

73Filef=newFile(pathName);

74try{

75if(f.exists()){

76System.out.println("文件已经存在");

77}else{

78f.createNewFile();

79System.out.println("创建成功");

80}

81}catch(IOExceptione){

82e.printStackTrace();

83}

84}

85

86publicstaticvoiddeleteFile(StringpathName){

87Filef=newFile(pathName);

88if(f.exists()){

89//删除此抽象路径名表示的文件或目录

90f.delete();

91if(f.exists()){

92System.out.println("删除失败");

93}else{

94System.out.println("删除成功");

95}

96}else{

97System.out.println("文件已经不存在");

98}

99}

100

101publicstaticvoiddelDirectory(FilefileList){

102File[]files=fileList.listFiles();

103for(inti=0;i

104if(files[i].isFile()){

105files[i].delete();

106}else{

107delDirectory(files[i]);

108}

109}

110fileList.delete();

111}

112}

File类查找文件的几种方法

[java]viewplaincopy

113packagecom.itlwc;

114

115importjava.io.File;

116

117publicclassIO{

118publicstaticvoidmain(String[]args){

119Filefile=newFile("d:

\\文件夹");

120//返回String类型(不返回子文件)

121String[]str=file.list();

122for(Strings:

str){

123System.out.println(s);

124}

125System.out.println("---------------");

126//返回File类型(不返回子文件)

127File[]f=file.listFiles();

128for(Filefi:

f){

129System.out.println(fi.getName());

130}

131System.out.println("---------------");

132//递归返回所有文件包括子文件

133findFile(file);

134}

135

136publicstaticvoidfindFile(FilefileList){

137File[]files=fileList.listFiles();

138for(inti=0;i

139if(files[i].isFile()){

140System.out.println(files[i].getName());

141}else{

142if(files[i].listFiles().length>0){

143System.out.println(files[i].getName());

144findFile(files[i]);

145}else{

146System.out.println(files[i].getName());

147}

148}

149}

150}

151}

152/*

153打印结果:

154a.txt

155新建文件夹

156---------------

157a.txt

158新建文件夹

159---------------

160a.txt

161新建文件夹

162b.txt

163*/

File过滤器

[java]viewplaincopy

164packagecom.itlwc;

165importjava.io.File;

166importjava.io.FilenameFilter;

167publicclassIO{

168publicstaticvoidmain(String[]args){

169Filefile=newFile("d:

\\文件夹");

170findJava1(file);

171System.out.println("-------------");

172findJava2(file);

173}

174

175//使用原始方法过滤文件

176publicstaticvoidfindJava1(Filefile){

177String[]str=file.list();

178for(Strings:

str){

179if(s.endsWith(".java")){

180System.out.println(s);

181}

182}

183}

184

185//使用FilenameFilter过滤文件

186publicstaticvoidfindJava2(Filefile){

187String[]str=file.list(newFilenameFilter(){

188publicbooleanaccept(Filedir,Stringname){

189if(name.endsWith(".java"))

190returntrue;

191returnfalse;

192}

193});

194for(Strings:

str){

195System.out.println(s);

196}

197}

198}

IO流

[plain]viewplaincopy

199Java的流建立在4个抽象类的基础上

200InputStream,OutputStream,Reader,Writer

201InputStream和OutputStream是字节流

202Reader和Writer是字符流

203一般的流都是单向的,java.io.RandomAccessFile类比较特殊,是一个双向的

204IO流分类

205根据功能分为:

206输入流(InputStream)和输出流(OutputStream)

207通常人站在程序的角度来判断流的方向

208输入流只能读数据

209输出流只能写数据

210根据结构分为:

211字节流(ByteStream)和字符流(CharacterStream)

212字节流以字节为单位进行数据传输,用于处理字节和二进制对象

213字符流以字符为单位进行数据传输,用于处理字符和字符串

214根据数据流操作方式分为:

215节点流(NodeStream)和过滤流(FilterStream)

216节点流是可以直接创建的流

217过滤流是可以装饰节点流让节点流功能更强大,过滤流使用了装饰者模式

218节点流和过滤流一般是配合使用

219转换流

220字节流和字符流之间的转化,一般字节流不方便操作,转换为字符流处理

FileOutputSteam/BufferedOutputStream写文件

[java]viewplaincopy

221packagecom.itlwc;

222

223importjava.io.BufferedOutputStream;

224importjava.io.FileOutputStream;

225

226publicclassIO{

227//输出流写入文件

228publicvoidexecute1()throwsException{

229FileOutputStreamfos=newFileOutputStream("D:

\\文件夹\\a.txt",true);

230Stringstr="abcdefghigklmnopqrstuvwxyz";

231byte[]buf=str.getBytes();

232fos.write(buf);

233fos.close();

234}

235

236//输出流带缓冲写入文件

237publicvoidexecute2()throwsException{

238FileOutputStreamfos=newFileOutputStream("D:

\\文件夹\\a.txt",true);

239BufferedOutputStreambos=newBufferedOutputStream(fos);

240Stringstr="abcdefghigklmnopqrstuvwxyz";

241byte[]buf=str.getBytes();

242bos.write(buf);

243//使用缓冲流一定要flush(),如果关闭流会自动flush()

244bos.close();

245}

246

247publicstaticvoidmain(String[]args)throwsException{

248newIO().execute1();

249newIO().execute2();

250}

251}

FileInputSteam/BufferedInputStream读文件

[java]viewplaincopy

252packagecom.itlwc;

253

254importjava.io.BufferedInputStream;

255importjava.io.FileInputStream;

256

257publicclassIO{

258//输入流读取文件

259publicvoidexecute1()throwsException{

260FileInputStreamfis=newFileInputStream("D:

\\文件夹\\a.txt");

261byte[]buf=newbyte[1024];

262//从输入流中读取一定数量的字节并将其存储在缓冲区数组b中

263intlen=fis.read(buf);

264Stringstr="";

265while(len!

=-1){

266//构造一个新的String,方法是使用指定的字符集解码字节的指定子数组

267str=newString(buf,0,len);

268len=fis.read();

269}

270System.out.print(str);

271fis.close();

272}

273

274//输入流带缓冲读取文件

275publicvoidexecute2()throwsException{

276FileInputStreamfis=newFileInputStream("D:

\\文件夹\\a.txt");

277BufferedInputStreambis=newBufferedInputStream(fis);

278byte[]buf=newbyte[1024];

279intlen=bis.read(buf);

280Stringstr="";

281while(len!

=-1){

282str=newString(buf,0,len);

283len=fis.read();

284}

285System.out.print(str);

286//使用缓冲流一定要flush(),如果关闭流会自动flush()

287bis.close();

288}

289

290publicstaticvoidmain(String[]args)throwsException{

291newIO().execute1();

292System.out.println();

293newIO().execute2();

294}

295}

296/*

297打印结果:

298abcdefghigklmnopqrstuvwxyzabcdefghigklmnopqrstuvwxyz

299abcdefghigklmnopqrstuvwxyzabcdefghigklmnopqrstuvwxyz

300*/

实现文件拷贝

[java]viewplaincopy

301packagecom.itlwc;

302

303importjava.io.BufferedInputStream;

304importjava.io.BufferedOutputStream;

305importjava.io.FileInputStream;

306importjava.io.FileOutputStream;

307

308publicclassIOInputOutputStream{

309//输入流输出流实现拷贝文件

310publicvoidexecute1()throwsException{

311FileInputStreamfis=newFileInputStream("D:

\\文件夹\\a.txt");

312FileOutputStreamfos=newFileOutputStream("D:

\\文件夹\\b.txt",true);

313byte[]buf=newbyte[1024];

314intlen=0;

315while(-1!

=len){

316fos.write(buf,0,len);

317len=fis.read(buf,0,buf.length);

318}

319fis.close();

320fos.close();

321}

322

323//输入流输出流带缓冲实现拷贝文件

324publicvoidexecute2()throwsException{

325FileInputStreamfis=newFileInputStream("D:

\\文件夹\\a.txt");

326BufferedInputStreambis=newBufferedInputStream(fis);

327FileOutputStreamfos=newFileOutputStream("D:

\\文件夹\\b.txt",true);

328BufferedOutputStreambos=newBufferedOutputStream(fos);

329byte[]buf=newbyte[1024];

330intlen=0;

331while(-1!

=len){

332bos.write(buf,0,len);

333len=bis.read(buf,0,buf.length);

334}

335//使用缓冲流一定要flush(),如果关闭流会自动flush()

336bis.close();

337bos.close();

338}

339}

DataOutputStream/DateInputStream读写数据

[java]viewplaincopy

340packagecom.itlwc;

341

342importjava.io.DataInputStream;

343importjava.io.DataOutputStream;

344importjava.io.FileInputStream;

345importjava.io.FileOutputStream;

346

347publicclassIODateInputStream{

348publicstaticvoidmain(String[]args)throwsException{

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2