java文件操作 之 创建文件夹路径和新文件
一:问题
(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));
}
二:代码实现
- 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();
- }
- }
- }
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文件操作 之 创建文件夹路径和新文件的更多相关文章
- [C/C++][文件操作] 对比目录并列出同名较新文件、较旧文件 0.1
主要是模仿robocopy的部分功能 (robocopy /L 参数可以列出本地目录和备份目录中的异同之处,主要是标记出:较新的.较旧的.多出的文件 ) 现在还不会写GUI,打算后面自己做目录树dif ...
- 键盘录入一个文件夹路径,统计该文件夹(包含子文件夹)中每种类型的文件及个数,注意:用文件类型(后缀名,不包含.(点),如:"java","txt")作为key, 用个数作为value,放入到map集合中,遍历map集合
package cn.it.zuoye5; import java.io.File;import java.util.HashMap;import java.util.Iterator;import ...
- iOS——文件操作NSFileManager (创建、删除,复制,粘贴)
iOS——文件操作NSFileManager (创建.删除,复制,粘贴) iOS的沙盒机制,应用只能访问自己应用目录下的文件.iOS不像android,没有SD卡概念,不能直接访问图像.视 ...
- php -- 文件操作(创建、复制、移动、删除)
创建 文件夹 bool mkdir ( string $pathname [, int $mode = 0777 [, bool $recursive = false [, resource $con ...
- PHP 文件操作类(创建文件并写入) 生成日志
<?php /** * 文件操作(生成日志)支持多条插入 * (假设插入多条语句并换行 用','逗号分开) * */ class log { public $path = './info.txt ...
- 【精】iOS 文件操作:沙盒(SandBox)、文件操作(FileManager)、程序包(NSBundle)
1.沙盒机制介绍 iOS 中的沙盒机制(SandBox)是一种安全体系. 每一个 iOS 应用程序都有一个单独的文件系统(存储空间).并且仅仅能在相应的文件系统中进行操作,此区域被称为沙盒. 全部的非 ...
- iOS 文件操作:沙盒(SandBox)、文件操作(FileManager)、程序包(NSBundle)
版权声明:本文为博主原创文章,转载请声明出处:http://blog.csdn.net/jinnchang 1.沙盒机制介绍 iOS 中的沙盒机制(SandBox)是一种安全体系.每个 iOS 应用程 ...
- [Python] python3 文件操作:从键盘输入、打开关闭文件、读取写入文件、重命名与删除文件等
1.从键盘输入 Python 2有两个内置的函数用于从标准输入读取数据,默认情况下来自键盘.这两个函数分别是:input()和raw_input(). Python 3中,不建议使用raw_input ...
- XML文件操作类--创建XML文件
这个类是在微软XML操作类库上进行的封装,只是为了更加简单使用,包括XML类创建节点的示例. using System; using System.Collections; using System. ...
随机推荐
- uptime查看服务器运行时间
uptime命令用于查看服务器运行了多长时间以及有多少个用户登录,快速获知服务器的负荷情况. uptime的输出包含一项内容是load average,显示了最近1,5,15分钟的负荷情况.它的值代表 ...
- SQL Sever实验二 交互式 SQL
一. 实验目的 1.观察查询结果, 体会 SELECT 语句实际应用: 2.要求学生能够使用 SELECT 语句进行数据库查询. 3. 熟练掌握各种查询的操作方法. 二. 实验准备 1. 完成实验一所 ...
- console.js还有浏览器不支持?
今天看到项目中引入了一个插件,我超级惊讶 为什么引入console.js啊? 这个是插件的源码:https://github.com/yanhaijing/console.js 我搜到源作者对这个插件 ...
- Cron定时任务应用到Thinkphp – 贤生博客
Cron定时任务应用到Thinkphp 安装crontab: yum install crontabs 关于cron的一些命令: /sbin/service crond start //启动服务 /s ...
- [Vue CLI 3] 配置解析之 indexPath
在 vue.config.js 配置中有一个 indexPath 的配置,我们先看看它有什么用? 用来指定 index.html 最终生成的路径(相对于 outputDir) 先看看它的默认值:在文件 ...
- Vijos1775 CodeVS1174 NOIP2009 靶形数独
靶形数独 描述 小城和小华都是热爱数学的好学生,最近,他们不约而同地迷上了数独游戏,好胜的他 们想用数独来一比高低.但普通的数独对他们来说都过于简单了,于是他们向 Z博士请教, Z 博士拿出了他最近发 ...
- 阿里云MVP:开发者的超能力,用技术创造更好世界
阿里云MVP:开发者的超能力,用技术创造更好世界 2019年3月,第8期阿里云MVP(最有价值专家)完成终审,截至目前,全球已有27个国家和地区.近500位云计算专家和优秀开发者成为阿里云MVP.阿里 ...
- qt加载背景图片的一种方式
//加载背景图片 void LCTGrid::loadBgPicture() { QImage image; QPalette palette; image.load(m_sPicturePath); ...
- JS原生实现五角星评价详情demo
<style> *{margin: 0;padding: 0;} .pingfen{ width: 195px; margin:10px auto; height:20px; positi ...
- IntelliJ Idea 复制粘贴的问题
分析 尝试从外部复制内容向Idea工作空间内粘贴文件时,有一定的几率会发生复制粘贴失败的问题:复制了新的内容,粘贴的却还是早些时候复制的旧的内容. 我使用的IDEA是最新版(2016.1.3),操作系 ...