文件读取,写入与遇到的问题

  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          

 

posted on 2017-10-08 23:05  星空下的小屋  阅读(269)  评论(0编辑  收藏  举报

导航