java怎么往本地磁盘上写文件

java怎么往本地磁盘上写文件,第1张

这是一个很有用的文件工具类,你可以把他存起来以后使用。

她应该可以满足你日常文件的基本功能啦!写文件,读文件,复制文件,复制文件夹等。

希望是你想要的.

import java.io.File

import java.io.FileInputStream

import java.io.FileNotFoundException

import java.io.FileOutputStream

import java.io.IOException

import java.io.InputStream

/**

*

* <p>

* Title: 文件处理工具类

* </p>

* <p>

* Description:实现文件的简单处理,复制文件、目录

* </p>

* <p>

* Copyright: Copyright (c) 2005

* </p>

* <p>

* Company: www.easyjf.com

* </p>

*

* @author 天一

* @version 1.0

*/

public class FileUtil {

/**

* 复制目录下的文件(不包括该目录)到指定目录,会连同子目录一起复制过去。

*

* @param targetFile

* @param path

*/

public static void copyFileFromDir(String targetDir, String path) {

File file = new File(path)

createFile(targetDir, false)

if (file.isDirectory()) {

copyFileToDir(targetDir, listFile(file))

}

}

/**

* 复制目录下的文件(不包含该目录和子目录,只复制目录下的文件)到指定目录。

*

* @param targetDir

* @param path

*/

public static void copyFileOnly(String targetDir, String path) {

File file = new File(path)

File targetFile = new File(targetDir)

if (file.isDirectory()) {

File[] files = file.listFiles()

for (File subFile : files) {

if (subFile.isFile()) {

copyFile(targetFile, subFile)

}

}

}

}

/**

* 复制目录到指定目录。targetDir是目标目录,path是源目录。

* 该方法会将path以及path下的文件和子目录全部复制到目标目录

*

* @param targetDir

* @param path

*/

public static void copyDir(String targetDir, String path) {

File targetFile = new File(targetDir)

createFile(targetFile, false)

File file = new File(path)

if (targetFile.isDirectory() &&file.isDirectory()) {

copyFileToDir(targetFile.getAbsolutePath() + "/" + file.getName(),

listFile(file))

}

}

/**

* 复制一组文件到指定目录。targetDir是目标目录,filePath是需要复制的文件路径

*

* @param targetDir

* @param filePath

*/

public static void copyFileToDir(String targetDir, String... filePath) {

if (targetDir == null || "".equals(targetDir)) {

System.out.println("参数错误,目标路径不能为空")

return

}

File targetFile = new File(targetDir)

if (!targetFile.exists()) {

targetFile.mkdir()

} else {

if (!targetFile.isDirectory()) {

System.out.println("参数错误,目标路径指向的不是一个目录!")

return

}

}

for (String path : filePath) {

File file = new File(path)

if (file.isDirectory()) {

copyFileToDir(targetDir + "/" + file.getName(), listFile(file))

} else {

copyFileToDir(targetDir, file, "")

}

}

}

/**

* 复制文件到指定目录。targetDir是目标目录,file是源文件名,newName是重命名的名字。

*

* @param targetFile

* @param file

* @param newName

*/

public static void copyFileToDir(String targetDir, File file, String newName) {

String newFile = ""

if (newName != null &&!"".equals(newName)) {

newFile = targetDir + "/" + newName

} else {

newFile = targetDir + "/" + file.getName()

}

File tFile = new File(newFile)

copyFile(tFile, file)

}

/**

* 复制文件。targetFile为目标文件,file为源文件

*

* @param targetFile

* @param file

*/

public static void copyFile(File targetFile, File file) {

if (targetFile.exists()) {

System.out.println("文件" + targetFile.getAbsolutePath() + "已经存在,跳过该文件!")

return

} else {

createFile(targetFile, true)

}

System.out.println("复制文件" + file.getAbsolutePath() + "到" + targetFile.getAbsolutePath())

try {

InputStream is = new FileInputStream(file)

FileOutputStream fos = new FileOutputStream(targetFile)

byte[] buffer = new byte[1024]

while (is.read(buffer) != -1) {

fos.write(buffer)

}

is.close()

fos.close()

} catch (FileNotFoundException e) {

e.printStackTrace()

} catch (IOException e) {

e.printStackTrace()

}

}

public static String[] listFile(File dir) {

String absolutPath = dir.getAbsolutePath()

String[] paths = dir.list()

String[] files = new String[paths.length]

for (int i = 0i <paths.lengthi++) {

files[i] = absolutPath + "/" + paths[i]

}

return files

}

public static void createFile(String path, boolean isFile) {

createFile(new File(path), isFile)

}

public static void createFile(File file, boolean isFile) {

if (!file.exists()) {

if (!file.getParentFile().exists()) {

createFile(file.getParentFile(), false)

} else {

if (isFile) {

try {

file.createNewFile()

} catch (IOException e) {

e.printStackTrace()

}

} else {

file.mkdir()

}

}

}

}

}

import java.io.FileNotFoundException

import java.io.FileOutputStream

import java.io.IOException

import java.io.OutputStream

import java.io.OutputStreamWriter

import java.io.PrintWriter

public class CreateFile {

public static void main(String[] args) {

String str = "需要写入的字"

String fileName = "D:\\a\\a.xml"

OutputStream output = null// 输出字节流

OutputStreamWriter outputWrite = null// 输出字符流

PrintWriter print = null// 输出缓冲区

try {

output = new FileOutputStream(fileName)

outputWrite = new OutputStreamWriter(output)

print = new PrintWriter(outputWrite)

print.print(str)

print.flush()// 一定不要忘记此句,否则数据有可能不能被写入文件

output.close()

} catch (FileNotFoundException e) {

e.printStackTrace()

} catch (IOException e) {

e.printStackTrace()

}

}

}

再一个问题就是只要你编码正确就可以正常打开。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11553603.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存