java代码在linux中创建目录遇到的问题

转载:https://blog.csdn.net/u012689336/article/details/53816557

1、如果要在linux中创建多级目录的话

File dir = new File("/cloud/test/");
if(!dir.exists()){
    dir.mkdirs();
}

创建多级目录的话要使用mkdirs()。

//小结:
//1、利用mkdir()创建目录
//2、利用mkdirs()创建多级目录


2、使用RandomAccessFile发生java.io.FileNotFoundException 的错误

File fileHive = new File("/home/sparkadmin/lxq/database/count_table.sh");

RandomAccessFile randomFile = new RandomAccessFile(fileHive, "rw");
// 文件长度,字节数
long fileLen = randomFile.length();
//将写文件指针移到文件尾。
randomFile.seek(fileLen);
randomFile.writeBytes("Hello World" + "\n");
randomFile.close();

这是因为RandomAccessFile 不能跨目录创建文件。
比如原目录是/home/sparkadmin/lxq/
则只能在该目录下直接创建,如果想让其直接创建/home/sparkadmin/lxq/database/count_table.sh

就会报文件找不到的异常。因此必须手动创建/home/sparkadmin/lxq/database/ 目录后,方可自行创建文件。

====================================================================

说明一下:自己遇到的问题:

在java代码创建文件夹

String dirpath = downloadimge + "\\" + username + "\\score\\";  //目录的path

在windows中没有问题创建成功,在linux下创建出现问题,没有创建成为多级目录,变成了一级目录,文件名直接就是目录和文件名称:

 

/**
	 * 创建文件并创建文件夹
	 * 
	 * @throws IOException
	 */
	private void CreateFile(String dirpath, String filepath) throws IOException {
		File file = new File(dirpath);
		if (!file.exists()) {
			try {
				// 按照指定的路径创建文件夹
				file.setWritable(true, false);
				file.mkdirs();
			} catch (Exception e) {
			}
		}
		File dir = new File(filepath);
		if (!dir.exists()) {
			try {
				// 在指定的文件夹中创建文件
				dir.createNewFile();
			} catch (Exception e) {
			}
		}

	}

解决方式: 将 \\  转化成为 / 即可。

String dirpath = downloadimge + "/" + username + "/score/";



你可能感兴趣的:(Linux)