1 package com.java.test;
2
3 import java.io.BufferedReader;
4 import java.io.BufferedWriter;
5 import java.io.File;
6 import java.io.FileInputStream;
7 import java.io.FileOutputStream;
8 import java.io.IOException;
9 import java.io.InputStreamReader;
10 import java.io.OutputStreamWriter;
11
12 public class FileTest {
13
14 private static String path = "D:\\";
15
16 public static void main(String[] args) {
17 String fileContent = readFile();
18 writeFile(fileContent);
19 }
20
21 public static String readFile(){
22 String fileContent = "";
23 FileInputStream fileInputStream = null;
24 InputStreamReader inputStreamReader = null;
25 BufferedReader bufferedReader = null;
26 File file = null;
27 try {
28 file = isExitFile("x","txt");
29 } catch (IOException e1) {
30 System.out.println("创建文件失败");
31 e1.printStackTrace();
32 }
33 try {
34 fileInputStream = new FileInputStream(file);
35 inputStreamReader = new InputStreamReader(fileInputStream,"utf-8");
36 bufferedReader = new BufferedReader(inputStreamReader);
37 String readLine = null;
38 while ((readLine = bufferedReader.readLine())!=null) {
39 fileContent += readLine;
40 }
41 } catch (Exception e) {
42 System.out.println("读取错误");
43 }finally {
44 try {
45 fileInputStream.close();
46 inputStreamReader.close();
47 bufferedReader.close();
48 } catch (IOException e) {
49 System.out.println("关闭失败");
50 e.printStackTrace();
51 }
52 }
53 return fileContent;
54 }
55
56 public static void writeFile(String fileContent){
57 File file = null;
58 FileOutputStream fileOutputStream = null;
59 OutputStreamWriter outputStreamWriter = null;
60 BufferedWriter bufferedWriter = null;
61
62 try {
63 file = isExitFile("y", "txt");
64 } catch (IOException e) {
65 System.out.println("创建文件失败");
66 e.printStackTrace();
67 }
68
69 try {
70 fileOutputStream = new FileOutputStream(file);
71 outputStreamWriter = new OutputStreamWriter(fileOutputStream, "utf-8");
72 bufferedWriter = new BufferedWriter(outputStreamWriter);
73 bufferedWriter.write(fileContent);
74 bufferedWriter.flush();
75 } catch (Exception e) {
76 System.out.println("写入文件失败");
77 }finally{
78 try {
79 fileOutputStream.close();
80 outputStreamWriter.close();
81 bufferedWriter.close();
82 } catch (IOException e) {
83 System.out.println("关闭失败");
84 e.printStackTrace();
85 }
86 }
87
88 }
89
90 //判断文件是否存在,若不存在则创建
91 public static File isExitFile(String fileName,String fileType) throws IOException{
92 String filePath = path+fileName+"."+fileType;
93 File file = null;
94 file = new File(filePath);
95 if(!file.exists()){
96 System.out.println("文件名为"+fileName+"不存在");
97 file.createNewFile();
98 }else{
99 System.out.println("文件名为"+fileName+"存在");
100 }
101 return file;
102 }
103 }
1 1.path变量中用\\的原因:
2 是将\转义,如使用\回报编译的错误
3
4
5
6 2.编码不同,文件也不同,若文件夹中有ISO-8859-1的文件
7
8 File file = new File("D:\\test.txt","UTF-8");
9 这样定义会报如下错误
10 java.io.IOException: 系统找不到指定的路径。
11
12 3.将内容读入文件中时读不进去
13 bufferedWriter.write(fileContent);
14 需要在结尾时关闭流或对流进行刷新
15
16 注:关闭流会先刷新流,再关闭
17