FileOutPutStream in 创新实训 自然语言交流系统

FileOutPutStream在c盘等一级目录下是可以创建文件的,如: new FileOutputStream("c:\\kk.txt");但是在c\\test等就创建不了,File也是一样,为什么呢?直接去看jdk,大概是为了防止随意创建文件对磁盘攻击吧。

   因此“java.io.FileNotFoundException 系统找不到指定的路径"的问题会经常出现在我们的编程中,原因可能有三:(1)文件名乱码。你工程的编码是 utf-8还是 gbk,如果是gbk那么小心文件名如果有中文,会乱码。

(2)没有创建文件夹,在没有文件夹情况下,创建文件将报错.解决方案为先创建文件夹,具体代码见下面。

(3)有文件夹,但文件所在位置无文件夹,即文件路径太深,超过二级。解决方案同2.

代码如下:

Java代码  收藏代码
  1. import java.io.File;  
  2. import java.io.FileNotFoundException;  
  3. import java.io.FileOutputStream;  
  4. import java.io.IOException;  
  5. import java.io.OutputStream;  
  6. import java.io.OutputStreamWriter;  
  7. import java.io.UnsupportedEncodingException;  
  8.   
  9. public class Test {  
  10.     public static void main(String[] args) {  
  11.         OutputStreamWriter osw = null;  
  12.         File directory = null;  
  13.         File file = null;  
  14.         try {  
  15.             String fileName = "D:" + File.separator + "fewlkfe"  
  16.                     + File.separator + "分为2";  
  17.             directory = new File(fileName);  
  18.             directory.mkdirs();  
  19.             if (!directory.exists()) {  
  20.                 return;  
  21.             }  
  22.             file = new File(fileName + File.separator + "哈哈2.csv");  
  23.             file.createNewFile();  
  24.             if (!file.isFile()) {  
  25.                 return;  
  26.             }  
  27.             osw = new OutputStreamWriter(new FileOutputStream(file));  
  28.             osw.write("few");  
  29.             osw.flush();  
  30.                     } catch (Exception e) {  
  31.   
  32.         } finally {  
  33.             try {  
  34.                 osw.close();  
  35.             } catch (IOException e) {  
  36.                 // TODO Auto-generated catch block  
  37.                 e.printStackTrace();  
  38.             }  
  39.         }  
  40.     }  
  41. }  
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;

public class Test {
	public static void main(String[] args) {
		OutputStreamWriter osw = null;
		File directory = null;
		File file = null;
		try {
			String fileName = "D:" + File.separator + "fewlkfe"
					+ File.separator + "分为2";
			directory = new File(fileName);
			directory.mkdirs();
			if (!directory.exists()) {
				return;
			}
			file = new File(fileName + File.separator + "哈哈2.csv");
			file.createNewFile();
			if (!file.isFile()) {
				return;
			}
			osw = new OutputStreamWriter(new FileOutputStream(file));
			osw.write("few");
			osw.flush();
					} catch (Exception e) {

		} finally {
			try {
				osw.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
}

 

posted @ 2017-06-08 10:02  D_R_Y  阅读(232)  评论(0编辑  收藏  举报