一:问题

(1)java 的如果文件夹路径不存在,先创建;

(2)如果文件名 的文件不存在,先创建再读写;存在的话直接追加写,关键字true表示追加

(3)File myPath = new File(toFilePath);
   if ( !myPath.exists()){//若此目录不存在,则创建之// 这个东西只能简历一级文件夹,两级是无法建立的。。。。。
           myPath.mkdir();
           System.out.println("创建文件夹路径为:"+ toFilePath);
}

         如上代码只能创建一级目录,不能够创建二级目录;即只能创建当前级的目录,如果上一级目录还不存在,则创建失败;当然可以通过递归创建来解决这个问题

File myPath = new File(toFilePath); 仅仅是把路径传递给了File.java类的私有属性,请看源代码,并没有打开文件,所以不会抛出FileNotFoundException

(4) //写入文件名处理

String fileN = toFilePath + "\\" + fileName;

            BufferedWriter writer = new BufferedWriter(new FileWriter(new File(fileN)));

与下面的代码对比

File file=new File(originalPath);

                if(file.isFile() && file.exists()){ //判断文件是否存在

                InputStreamReader read = new InputStreamReader(

                new FileInputStream(file),encoding);//考虑到编码格式

                BufferedReader bufferedReader = new BufferedReader(read);

}

其实,FileWriter 是包装了(调用了) FileOutputStream()函数 源代码如下:所以两者有些类似的,只是stream可以过滤编码罢了

public FileWriter(File file) throws IOException {

        super(new FileOutputStream(file));

    }

二:代码实现

  1. package edu.tju.cs;
  2. import java.io.File;
  3. import java.io.FileNotFoundException;
  4. import java.io.FileWriter;
  5. import java.io.IOException;
  6. import java.io.RandomAccessFile;
  7. public class AllTest {
  8. /*public static void main(String[] args){
  9. System.out.println("****\\\\");
  10. String str = "a\\b\\b\\c.csv|aaaaa";
  11. String[] chars = str.split("\\\\");
  12. String[] fileName = chars[3].split("\\.");// u002e
  13. String[] tmp = chars[3].split("\\u007c");//  \\u007c
  14. for(String cha:chars){
  15. System.out.println(cha);
  16. }
  17. System.out.println(fileName[0]);
  18. System.out.println(tmp[1]);
  19. }*/
  20. public static void main(String args[])
  21. {
  22. StringBuffer fileBuf=new StringBuffer();
  23. String filePar = "d:\\test";// 文件夹路径
  24. File myPath = new File( filePar );
  25. if ( !myPath.exists()){//若此目录不存在,则创建之
  26. myPath.mkdir();
  27. System.out.println("创建文件夹路径为:"+ filePar);
  28. }
  29. // 文件夹路径存在的情况下
  30. String filename = "test.txt";// 文件名
  31. try {
  32. FileWriter fw = new FileWriter(filePar + "\\" + filename,true);// filePar + "\\" + filename,true
  33. // FileWriter 就是牛,如果文件名 的文件不存在,先创建再读写;存在的话直接追加写,关键字true表示追加
  34. String originalLine = "aaaaaaaaaa" + "\n";//
  35. System.out.println("*** "+ originalLine);
  36. fw.write(originalLine);
  37. // 关闭写文件,每次仅仅写一行数据,因为一个读文件中仅仅一个唯一的od
  38. fw.close();
  39. } catch (IOException e) {
  40. // TODO Auto-generated catch block
  41. e.printStackTrace();
  42. }
  43. }
  44. }
package edu.tju.cs;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileWriter;

import java.io.IOException;

import java.io.RandomAccessFile; public class AllTest {
/*public static void main(String[] args){
System.out.println("****\\\\");
String str = "a\\b\\b\\c.csv|aaaaa";
String[] chars = str.split("\\\\");
String[] fileName = chars[3].split("\\.");// u002e
String[] tmp = chars[3].split("\\u007c");// \\u007c
for(String cha:chars){
System.out.println(cha);
}
System.out.println(fileName[0]);
System.out.println(tmp[1]);
}*/ public static void main(String args[])
{
StringBuffer fileBuf=new StringBuffer();
String filePar = "d:\\test";// 文件夹路径
File myPath = new File( filePar );
if ( !myPath.exists()){//若此目录不存在,则创建之
myPath.mkdir();
System.out.println("创建文件夹路径为:"+ filePar);
}
// 文件夹路径存在的情况下
String filename = "test.txt";// 文件名
try {
FileWriter fw = new FileWriter(filePar + "\\" + filename,true);// filePar + "\\" + filename,true
// FileWriter 就是牛,如果文件名 的文件不存在,先创建再读写;存在的话直接追加写,关键字true表示追加
String originalLine = "aaaaaaaaaa" + "\n";//
System.out.println("*** "+ originalLine);
fw.write(originalLine);
// 关闭写文件,每次仅仅写一行数据,因为一个读文件中仅仅一个唯一的od
fw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}

总之,FileWriter 就是牛,如果文件名 的文件不存在,先创建再读写;存在的话直接追加写,关键字true表示追加   但是他只能一行一行的读写,不如代缓冲的读写效率高

java多种方式读文件,追加文件内容,对文件的各种操作请见:java多种方式读文件,追加文件内容,对文件的各种操作

java文件操作 之 创建文件夹路径和新文件的更多相关文章

  1. [C/C++][文件操作] 对比目录并列出同名较新文件、较旧文件 0.1

    主要是模仿robocopy的部分功能 (robocopy /L 参数可以列出本地目录和备份目录中的异同之处,主要是标记出:较新的.较旧的.多出的文件 ) 现在还不会写GUI,打算后面自己做目录树dif ...

  2. 键盘录入一个文件夹路径,统计该文件夹(包含子文件夹)中每种类型的文件及个数,注意:用文件类型(后缀名,不包含.(点),如:"java","txt")作为key, 用个数作为value,放入到map集合中,遍历map集合

    package cn.it.zuoye5; import java.io.File;import java.util.HashMap;import java.util.Iterator;import ...

  3. iOS——文件操作NSFileManager (创建、删除,复制,粘贴)

    iOS——文件操作NSFileManager (创建.删除,复制,粘贴)       iOS的沙盒机制,应用只能访问自己应用目录下的文件.iOS不像android,没有SD卡概念,不能直接访问图像.视 ...

  4. php -- 文件操作(创建、复制、移动、删除)

    创建 文件夹 bool mkdir ( string $pathname [, int $mode = 0777 [, bool $recursive = false [, resource $con ...

  5. PHP 文件操作类(创建文件并写入) 生成日志

    <?php /** * 文件操作(生成日志)支持多条插入 * (假设插入多条语句并换行 用','逗号分开) * */ class log { public $path = './info.txt ...

  6. 【精】iOS 文件操作:沙盒(SandBox)、文件操作(FileManager)、程序包(NSBundle)

    1.沙盒机制介绍 iOS 中的沙盒机制(SandBox)是一种安全体系. 每一个 iOS 应用程序都有一个单独的文件系统(存储空间).并且仅仅能在相应的文件系统中进行操作,此区域被称为沙盒. 全部的非 ...

  7. iOS 文件操作:沙盒(SandBox)、文件操作(FileManager)、程序包(NSBundle)

    版权声明:本文为博主原创文章,转载请声明出处:http://blog.csdn.net/jinnchang 1.沙盒机制介绍 iOS 中的沙盒机制(SandBox)是一种安全体系.每个 iOS 应用程 ...

  8. [Python] python3 文件操作:从键盘输入、打开关闭文件、读取写入文件、重命名与删除文件等

    1.从键盘输入 Python 2有两个内置的函数用于从标准输入读取数据,默认情况下来自键盘.这两个函数分别是:input()和raw_input(). Python 3中,不建议使用raw_input ...

  9. XML文件操作类--创建XML文件

    这个类是在微软XML操作类库上进行的封装,只是为了更加简单使用,包括XML类创建节点的示例. using System; using System.Collections; using System. ...

随机推荐

  1. Java 类与类之间的调用

    方法1. 新建一个类. 然后在调用类中先进行被调用类实例化,然后通过实例化的对象访问. 例如: //先定义一个类 import static java.lang.System.out; public ...

  2. fedora python访问mysql

    1 下载驱动库 http://sourceforge.net/projects/mysql-python/ 2, yum install mysql-dev* yum install python-d ...

  3. 微信小程序--Tab栏切换的快速实现

    上效果! wxss样式代码: .tabs-item.selected { color:rgba(,,,.); border-bottom:2px solid rgba(,,,.); } .tabs-i ...

  4. 问题解决:在js中绑定onclick事件为什么不加括号,在html代码中必须要加?(转载)

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. 杨柳絮-Info:阜阳市多举措治理杨柳絮问题

    ylbtech-杨柳絮-Info:阜阳市多举措治理杨柳絮问题 1.返回顶部 1. 阜阳市多举措治理杨柳絮问题 2019-4-15 10:34| 发布者: 戴斐 | 查看: 56407| 评论: 0|原 ...

  6. 计算机网络5.2-5 ipv4&路由协议&ipv6

    子网变址技术 子网掩码 默认子网掩码 子网地址 广播地址 一些计算 CIDR 分配举例 地址不必连续分配 sadsdas 网络设备---路由器 输出结构 直接交付与简介交付 IP分组的转发 分属于不同 ...

  7. VisualVM介绍使用

    1    打开VisualVM(这个工具放在JDK安装目录的bin目录下,双击jvisualvm.exe即可打开),如下图所示 以VisualVM自身为例,VisualVM本身也是一个java程序,当 ...

  8. Python 使用BeautifulSoup模块抽取数据

  9. NOIP模拟 17.8.16

    NOIP模拟17.8.16 A 债务文件名 输入文件 输出文件 时间限制 空间限制debt.pas/c/cpp debt.in debt.out 1s 128MB[题目描述]小 G 有一群好朋友,他们 ...

  10. 外贸电子商务网站之Prestashop修改顶部导航

    如修改以上所示顶部导航. 如何在prestashop顶部导航栏添加链接,Module>Top horizontal menu点击进入Configure页面 1,在Settings 中看到 链接 ...