java-JAVA中如何判断一个文件是否存在,如果不存在则创建它?

问题描述

JAVA中如何判断一个文件是否存在,如果不存在则创建它?

JAVA中如何判断一个文件是否存在,如果不存在则创建它?
求帮助
源码如下:

 public void SaveFile(String fileName,String content) throws IOException{
        File file =new File(fileName);
        if(!file.exists()){
            System.out.println("不存在");
            System.out.println(file.createNewFile());
            file.createNewFile();
        }
        FileOutputStream fos = new FileOutputStream(file,true);
        OutputStreamWriter out =new OutputStreamWriter(fos,"utf-8");
        BufferedWriter bw = new BufferedWriter(out);
        bw.write(content);
        bw.write("rn");
        bw.flush();
    }

每次执行都提示我:

 不存在
java.io.IOException: 系统找不到指定的路径。
    at java.io.WinNTFileSystem.createFileExclusively(Native Method)
    at java.io.File.createNewFile(File.java:883)
    at com.sdzw.test.dao.FilesDAO.SaveFile(FilesDAO.java:24)
    at com.sdzw.test.dao.BaiduDAO.saveBaijia(BaiduDAO.java:126)
    at com.sdzw.test.test.BaiduTest.RunBaidu(BaiduTest.java:35)
    at com.sdzw.test.test.BaiduTest.main(BaiduTest.java:17)

非常感谢各位的帮助,小弟已经知道了。我这个地方最大的错误是我给的路径是相对路径,应该是绝对路径。
现在小弟的思路是先获取当前程序所在的绝对路径(如: E:CSDN/Test/),然后添加上要新建的文件(/Demo1.txt),使之组成一个新的绝对路径(E:CSND/Test/Demo1.txt)。不知道这个思路是否正确。

解决方案

判断一个文件是否存在,如果不存在则创建它,然后向此文件写入指定的内容。
下面是完整代码:

//-----------------------------------------------------------------------------------
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;

public class FindFile {

public static void main(String[] args) throws IOException
{
    new FindFile().saveFile("E:/test.txt", "test");
}
public void saveFile(String fileName,String content) throws IOException
{
    File file =new File(fileName);
    if(!file.exists())
    {
        System.out.println("不存在");
        System.out.println(file.createNewFile());
        file.createNewFile();
    }

        FileOutputStream fos = new FileOutputStream(file,true);
        OutputStreamWriter out =new OutputStreamWriter(fos,"utf-8");
        BufferedWriter bw = new BufferedWriter(out);
        bw.write(content);
        bw.write("rn");
        bw.flush();
        System.out.println("写入成功!");

}

}
//-----------------------------------------------------------------------------------

解决方案二:

提示你路径不对了,如果你是web项目,不能用绝对地址

解决方案三:

你的fileName的值是什么?
如果只是文件名,那需要加上相对路径的;
如果是地址+文件名,那需要改成相对路径+文件名;

解决方案四:

先判断文件目录是否存在,没有目录,文件也无法创建

解决方案五:

把您的代码改成下面的就可以成功了,您只是少写了一个else条件:

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;

public class FindFile {

public static void main(String[] args) throws IOException
{
    new FindFile().saveFile("E:/test.txt", "test");
}
public void saveFile(String fileName,String content) throws IOException
{
    File file =new File(fileName);
    if(!file.exists())
    {
        System.out.println("不存在");
        System.out.println(file.createNewFile());
        file.createNewFile();
    }else
    {
        FileOutputStream fos = new FileOutputStream(file,true);
        OutputStreamWriter out =new OutputStreamWriter(fos,"utf-8");
        BufferedWriter bw = new BufferedWriter(out);
        bw.write(content);
        bw.write("rn");
        bw.flush();
        System.out.println("写入成功!");
    }

}

}

解决方案六:

救命啊,哪里出问题了。头大····

解决方案七:

把您的代码改成下面的就可以成功了,您只是少写了一个else条件:

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;

public class FindFile {

public static void main(String[] args) throws IOException
{
    new FindFile().saveFile("E:/test.txt", "test");
}
public void saveFile(String fileName,String content) throws IOException
{
    File file =new File(fileName);
    if(!file.exists())
    {
        System.out.println("不存在");
        System.out.println(file.createNewFile());
        file.createNewFile();
    }else
    {
        FileOutputStream fos = new FileOutputStream(file,true);
        OutputStreamWriter out =new OutputStreamWriter(fos,"utf-8");
        BufferedWriter bw = new BufferedWriter(out);
        bw.write(content);
        bw.write("rn");
        bw.flush();
        System.out.println("写入成功!");
    }

}

}

解决方案八:

你不光是文件没有吧,是不是连前面的文件夹也没有啊?createNewFile这个方法不能连带文件夹一起建,先把文件夹建出来mkdirs()这个

解决方案九:

File file = new File("C:/testFTP/src/com/shine/config/dir.xml");
File parentFile = file.getParentFile();
Boolean bn = false;
if(!file.exists()){
bn = parentFile.mkdirs();
if(bn){
try {
bl = file.createNewFile();

                } catch (IOException e) {
                    System.out.println("创建文件失败");
                    e.printStackTrace();
                }
            }
        }
时间: 2024-08-03 09:16:16

java-JAVA中如何判断一个文件是否存在,如果不存在则创建它?的相关文章

大神帮帮忙-java中如何获取一个文件的文件头信息

问题描述 java中如何获取一个文件的文件头信息 有没有一个方法获取一个文件的文件头.这个文件是a.exe,求教了! 解决方案 exe使用的是pe格式,参考:http://www.cnblogs.com/lzjsky/archive/2011/09/22/2184942.html 解决方案二: 所谓文件头,没有一个确切的概念,不同的文件类型,文件头的含义不同,长度不同. 如果你希望简单判断下文件类型,那么你只需要读取文件开头几个字节,这不算文件头,一般叫做文件特征. 比如exe,它开头两个字节应

java 怎么判断一个文件已经损坏了

问题描述 java 怎么判断一个文件已经损坏了 如题:用java读取jpg.jpeg.tif.tiff.pdf文件.如何才能解析到该类文件已经损坏,返回一个false值.有没有工具包能解决这问题?

在Java程序中运行外部类文件

程序 在Java程序中运行外部类文件 一.引言无论是用传统的编程语言(C++.VB等)还是Java语言编程,都经常需要在一个运行的程序中执行另外一个独立的外部程序.例如用Java设计一个IDE程序,那么这个IDE程序就必需能够调式.运行其它独立的外部Java程序.况且直接运行已经存在的外部程序来实现本程序的某些特定的功能,也是提高程序开发效率的一种重要手段.Java2为实现在一个Java程序中运行外部类文件(即Java程序)提供了的两种解决方案,即在同一进程中运行外部类文件和在不同进程中运行外部

java 运行中读取修改后文件的问题

问题描述 java 运行中读取修改后文件的问题 我用java读取一个txt文件,然后输出里面的内容, File f = new File(path); BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(f))); System.out.println(br.readLine()); 然后这边打个断点,之后去修改txt的内容. System.out.println("wait"

java 执行linux命令判断某个文件是否存在

问题描述 java 执行linux命令判断某个文件是否存在 java用sshxcute 连接linux服务器,判断一个某个路径下的某个文件或文件夹是否存在? 给出返回值. 解决方案 http://www.cnblogs.com/emanlee/p/3583769.html

java swing中如何为一个窗体添加背景图片

问题描述 java swing中如何为一个窗体添加背景图片 java swing中如何为一个窗体添加背景图片,java swing中如何为一个窗体添加背景图片 解决方案 http://blog.csdn.net/caixiexin/article/details/6608919 解决方案二: 在JFrame中添加JPanel面板,然后就可以设置了.

java爬虫中如何判断两个URL是否属于同一网站

问题描述 java爬虫中如何判断两个URL是否属于同一网站 如何判断两个URL是否属于同一网站,爬虫中要剔除站外链接,应该要怎么做,两个url主域名不一样但属于同一网站,应该通过什么进行判断 解决方案 String url = "http://ask.csdn.net/questions/237143"; Pattern p = Pattern.compile("(?<=http://|\.)[^.]*?\.(com|cn|net|org|biz|info|cc|tv)

java多人同时读取一个文件(允许同时 10人查询)

问题描述 java多人同时读取一个文件(允许同时 10人查询) java多人同时读取一个文件(允许同时 10人查询),要多线程实现吗? 解决方案 不对文件进行修改,不需要多线程.就好像你的名字,别人都来问你叫什么,同时发生也没什么. 解决方案二: 会对文件修改吧吗?如果数据会改10个线程读取到的数据可能不一样,这时候就需要用锁. 解决方案三: 看需要修改不?不需要的话只是查询没必要使用多线程 解决方案四: sinat_31535993 正解

在Mac Linux上如何快速判断一个文件是否是恶意程序?

熟悉Mac/Linux的用户经常会使用命令行,如果遇到系统异常,如CPU使用率暴涨等,经常会使用top命令去定位到底是哪个程序出现了异常.找到相关程序后,由于许多用户自身没有安全背景或者不大懂得逆向,便无法去分析程序到底做了什么,不敢枉然kill掉程序.又如果文件夹下面无故多了非自己创建的程序,这时也不敢枉然删除.针对这一情况,本文介绍几种小技巧,让你快速判断一个程序是否是恶意样本. 1.使用file命令快速识别文件类型   如图使用file命令识别名为bashd的文件,从结果中可以看出这个文件