老师,使用File创建目录和文件,但创建成功后该目录下并没有文件?

老师,使用File创建目录和文件,但创建成功后该目录下并没有文件?

public class FileInputDemo {

	public static void main(String[] args) {
		//创建目录
		File file1=new File("speech.txt");
		System.out.println(file1.isDirectory());
		System.out.println(file1.isFile());
		if(!file1.exists()) {
			file1.mkdir();
		}
		//
		if(!file1.exists()) {
			try {
				file1.createNewFile();//创建文件
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		try {
            FileInputStream f=new FileInputStream("C:\\Users\\67077\\Desktop\\实验文件\\项目\\JAVA\\Fileioproj\\speech.txt");
            //byte[] b=new byte[100];
            //f.read(b, 0, 5);
            int n=0;
            int count=0;
            System.out.print("文本内容:");
            while((n=f.read())!=-1) {
                System.out.print((char)n);
                count++;
            }
            System.out.println();
            System.out.println("统计结果:"+file1.getName()+"文件中共有"+count+"个字符");
            f.close();
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,同学还需要将判断文件不存在时,则创建文件夹,这部分代码删掉,因为同学创建的File对象为speech.txt文件,也就无法创建文件夹。具体如下:

http://img1.sycdn.imooc.com/climg/5d6884ae0001cbc408460449.jpg

然后进行执行程序后,刷新项目即可看到speech.txt文件,在speech.txt中输入文本内容:abcdefghijklmnopqrst,再次执行程序,即可读取文本内容,并统计字节。

修改后的代码如下:

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

public class FileInputDemo {

	public static void main(String[] args) {
		// 创建目录
		File file1 = new File("speech.txt");
		//
		if (!file1.exists()) {
			try {
				file1.createNewFile();// 创建文件
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		try {
			FileInputStream f = new FileInputStream(file1);
			// byte[] b=new byte[100];
			// f.read(b, 0, 5);
			int n = 0;
			int count = 0;
			System.out.print("文本内容:");
			while ((n = f.read()) != -1) {
				System.out.print((char) n);
				count++;
			}
			System.out.println("统计结果:" + file1.getName() + "文件中共有" + count + "个字符");
			f.close();
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

好帮手慕酷酷 2019-08-29 11:46:10

同学你好,代码的实现上有些问题,在FileInputStream中不需要指定路径,直接使用File创建的文件路径即可~执行完程序后,刷新项目即可看到speech.txt文件

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

public class FileInputDemo {
 
    public static void main(String[] args) {
        //创建目录
        File file1=new File("speech.txt");
        if(file1.isDirectory()) {
            file1.mkdir();
        }
        //
        if(file1.isFile()) {
            try {
                file1.createNewFile();//创建文件
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        try {
            FileInputStream f=new FileInputStream(file1);
            //byte[] b=new byte[100];
            //f.read(b, 0, 5);
            int n=0;
            int count=0;
            System.out.print("文本内容:");
            while((n=f.read())!=-1) {
                System.out.print((char)n);
                count++;
            }
            System.out.println("统计结果:"+file1.getName()+"文件中共有"+count+"个字符");
            f.close();
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
 
}

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 藤六 #1
    //创建目录 File file1=new File("speech.txt"); System.out.println(file1.isDirectory()); System.out.println(file1.isFile()); if(!file1.exists()) { file1.mkdir(); } // if(!file1.exists()) { try { file1.createNewFile();//创建文件 } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } try { FileInputStream f=new FileInputStream(file1); //byte[] b=new byte[100]; //f.read(b, 0, 5); int n=0; int count=0; System.out.print("文本内容:"); while((n=f.read())!=-1) { System.out.print((char)n); count++; } System.out.println(); System.out.println("统计结果:"+file1.getName()+"文件中共有"+count+"个字符"); f.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); }catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
    2019-08-29 20:37:05
  • 提问者 藤六 #2
    老师按照你的方法修改了FileInputStream(file1),但是系统抛出了异常{java.io.FileNotFoundException: speech.txt (拒绝访问。) at java.io.FileInputStream.open0(Native Method) at java.io.FileInputStream.open(Unknown Source) at java.io.FileInputStream.<init>(Unknown Source) at fileInputStream.FileInputDemo.main(FileInputDemo.java:28)}
    2019-08-29 20:37:14
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师