java 操作本地文件?

286 2024-03-12 17:50

一、java 操作本地文件?

一、文件的创建、删除和重命名

File file = new File("/bin/hello.txt");//文件无法被创建,系统找不到指定的路径

file.createNewFile();

File file = new File("bin/hello.txt");

file.createNewFile();

File file = new File("../hello.txt");//在当前目录的上一层目录创建文件

file.createNewFile();

File file = new File("../../hello.txt");//在当前目录的上一层目录创建文件

file.createNewFile();

file.exists()

File nameto = new File("Hello.txt");

file.renameTo(nameto);//重命名文件

重命名文件,达到了移动文件的效果,跨目录时,要求源和目的必须处于同一个分区

另外如果目标的重命名文件已经存在,重命名操作也会失败的

文件处于不同的分区,需要使用文件的copy,而不是重命名

File nameto = new File("src/new Hello.txt");

file.renameTo(nameto);//重命名文件

//文件

file.isFile();

//路径(文件夹)

file.isDirectory();

file.delete();//删除文件

二、文件夹的创建、删除和重命名

File folder1 = new File("my new folder");

File folder2 = new File("my new folder/one/two/three/main");

mkdirDemo(folder1);

mkdirsDemo(folder2);

File newfolder = new File("my new folder-new");

renameFolder(folder1, newfolder);

File newfolder2 = new File("my new folder/one/2/three/main");

renameFolder(folder2, newfolder2);//重命名失败,被重命名的文件夹在构造函数中,必须是多级目录的最后一个子目录

File newfolder3 = new File("my new folder/one/2");

renameFolder(folder2, newfolder3);//重命名失败,被重命名的文件夹在构造函数中,必须是多级目录的最后一个子目录

//必须处于同一个分区,另外如果目标的重命名文件夹已经存在,重命名操作也会失败的

File folderSrc = new File("my new folder/one/two/three");

File folderDest = new File("my new folder/one/three");

if(folderSrc.renameTo(folderDest)){

  System.out.println("done");

}else {

  System.out.println("fail");

}

File folder4 = new File("my new folder/one/two");//必须是空文件夹才可以删除,如果包含了其他文件或文件夹,那么删除失败

if(folder4.delete()){

  System.out.println("done");

}else {

  System.out.println("delete fail");

}

}

//创建单个目录,文件夹如果已经存在的话则会报错,创建失败.

private static void mkdirDemo(File folder) {

  if(folder.mkdir()){

    System.out.println("文件夹创建完成");

  }else{

  if(folder.exists()){

    System.out.println("文件夹已经存在不用创建.");

  }else {

    System.out.println("文件夹创建失败");

  }

}

/**

* 创建多级目录,当然参数如果是一级目录,就只会创建一级目录

* 文件夹如果已经存在的话也不会报错,已经存在的话就不创建

* @param folder2

*/

private static void mkdirsDemo(File folder2) {

  if(folder2.mkdirs()){

    System.out.println("文件夹创建完成!");

  }

}

/**

* 重命名文件夹

* @param srcFolder

* @param destFolder

*/

private static void renameFolder(File srcFolder, File destFolder) {

  if(srcFolder.renameTo(destFolder)){

    System.out.println("重命名完成");

  }else {

    System.out.println("重命名失败");

  }

}

三、读取文件的属性

File file = new File("text.txt");

//判断文件是否存在

System.out.println(file.exists());

//读取文件名称,只跟构造函数中的名称有关,和文件是否存在无关

System.out.println(file.getName());

//读取文件路径,相对路径

System.out.println(file.getPath());

//读取文件路径,绝对路径,从磁盘的根目录开始算的

System.out.println(file.getAbsolutePath());

//读取文件的父级路径

System.out.println(file.getParent());//结果为null,因为file对应的路径是text.txt(构造函数).

System.out.println(new File(file.getAbsolutePath()).getParent());

//读取文件的大小,单位是字节

System.out.println(file.length()/1000 + "KB");//硬盘上单位进制是1000而不是1024

//判断文件是否是隐藏文件

//在linux下,以点开头的文件就是隐藏文件,在windows下,右键设定文件的隐藏属性

System.out.println(file.isHidden());

//判断文件是否可读

System.out.println(file.canRead());

//判断文件是否可写

System.out.println(file.canWrite());

//判断文件是否是文件夹

System.out.println(file.isDirectory());

四、设置文件的属性

//将文件设置为可写

file.setWritable(true);

//将文件设置为不可写

file.setWritable(false);

//将文件设置为可读

file.setReadable(true);

//将文件设置成不可读不可写

file.setReadable(false);

file.setWritable(false);

//将文件设置为只读

file.setReadOnly();

二、Java派生类?

在java的继承关系中,新的类称为子类,也叫派生类。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力,是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。举例:class A extends B{//这里B叫做父类或者基类,A叫做子类或者派生类}

三、Java日期工具类?

Java日期工具类:可以进行日期转化、今天日期、昨天日期、明天日期、指定日期,非常实用。

想必程序员在开发过程中,遇到日期转化肯定避免不了的。它让人爱恨不已,而有些又记不住,每次遇到都得问度娘。我最近在开发过程中亦是如此。

为了让自己更好的记忆,方便以后遇到日期类型转化相关开发。因此,自己作了适当的整理,编写了一个Java日期工具类,包括获得今天日期、昨天日期、明天日期、日期和字符串之间转化等相关转化。希望这个日期工具类,也能提高你对日期转化的开发效率。

日期工具类:DateTools.java

package com.geshanzsq;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

import java.util.GregorianCalendar;

/**

* 日期工具类

* @author 格姗知识圈

*/

public class DateTools {

/**

* 日期转化为指定日期格式类型

* @param date 日期

* @param pattern 日期格式类型,如yyyy-MM-dd,yyyy年MM月dd日 HH:mm:ss

* @return

*/

public static String dateToString(Date date,String pattern){

SimpleDateFormat sdf = new SimpleDateFormat(pattern);//日期格式

String date_str = sdf.format(date);//日期转化为指定格式

return date_str;

}

/**

* 日期字符串转化为指定日期格式类型

* @param date_str 日期字符串

* @param pattern 日期格式类型,如yyyy-MM-dd,yyyy年MM月dd日 HH:mm:ss

* @return

* @throws ParseException

*/

public static Date stringToDate(String date_str,String pattern) throws ParseException {

SimpleDateFormat sdf = new SimpleDateFormat(pattern);//日期格式

Date date = sdf.parse(date_str);//日期转化为指定格式

return date;

}

/**

* 获得今天日期

* @param pattern 日期格式类型,如yyyy-MM-dd,yyyy年MM月dd日 HH:mm:ss

* @return

*/

public static String getToday(String pattern){

Date date = new Date();//今天日期

SimpleDateFormat sdf = new SimpleDateFormat(pattern);//日期格式

String today = sdf.format(date);//日期转化为指定格式

return today;

}

/**

* 获得明天日期

* @param pattern 日期格式类型,如yyyy-MM-dd,yyyy年MM月dd日 HH:mm:ss

* @return

*/

public static String getTomorrow(String pattern){

Date date = new Date();//今天日期

Calendar cal = new GregorianCalendar();

cal.setTime(date);//设置时间

cal.add(Calendar.DATE,1);//把日期往后增加一天.整数往后推,负数往前移动

date = cal.getTime();//这个时间就是日期往后推一天的日期结果,即明天日期

SimpleDateFormat sdf = new SimpleDateFormat(pattern);//日期格式

String tommorrow = sdf.format(date);//明天日期

return tommorrow;

}

/**

* 获得昨天日期

* @param pattern 日期格式类型,如yyyy-MM-dd,yyyy年MM月dd日 HH:mm:ss

* @return

*/

public static String getYesterday(String pattern){

Date date = new Date();//今天日期

Calendar cal = new GregorianCalendar();

cal.setTime(date);//设置时间

cal.add(Calendar.DATE,-1);//把日期往后增加一天.整数往后推,负数往前移动

date = cal.getTime();//这个时间就是日期往前推一天的日期结果,即昨天日期

SimpleDateFormat sdf = new SimpleDateFormat(pattern);//日期格式

String yesterday = sdf.format(date);//昨天日期

return yesterday;

}

/**

* 获得指定日期的后一天

* @param date 指定日期

* @param pattern 日期格式类型,如yyyy-MM-dd,yyyy年MM月dd日 HH:mm:ss

* @return

* @throws ParseException

*/

public static Date getAfterDay(Date date,String pattern) throws ParseException {

Calendar cal = new GregorianCalendar();

cal.setTime(date);//设置时间

cal.add(Calendar.DATE,1);//把日期往后增加一天.整数往后推,负数往前移动

date = cal.getTime();//这个时间就是日期往后推一天的日期结果,即后一天日期

SimpleDateFormat sdf = new SimpleDateFormat(pattern);//日期格式

String next_date_str = sdf.format(date);//后一天日期

//将日期字符串转化为指定日期格式类型

Date after_date = stringToDate(next_date_str,pattern);

return after_date;

}

/**

* 获得指定日期的后一天

* @param date_str 指定日期字符串

* @param pattern 日期格式类型,如yyyy-MM-dd,yyyy年MM月dd日 HH:mm:ss

* @return

* @throws ParseException

*/

public static String getAfterDay(String date_str,String pattern) throws ParseException {

//将日期字符串转化为指定日期格式类型

Date date = stringToDate(date_str,pattern);

Calendar cal = new GregorianCalendar();

cal.setTime(date);//设置时间

cal.add(Calendar.DATE,1);//把日期往后增加一天.整数往后推,负数往前移动

date = cal.getTime();//这个时间就是日期往后推一天的日期结果,即后一天日期

SimpleDateFormat sdf = new SimpleDateFormat(pattern);//日期格式

String after_date_str = sdf.format(date);//后一天日期

return after_date_str;

}

/**

* 获得指定日期的前一天

* @param date 指定日期

* @param pattern 日期格式类型,如yyyy-MM-dd,yyyy年MM月dd日 HH:mm:ss

* @return

* @throws ParseException

*/

public static Date getBeforetDay(Date date,String pattern) throws ParseException {

Calendar cal = new GregorianCalendar();

cal.setTime(date);//设置时间

cal.add(Calendar.DATE,-1);//把日期往后增加一天.整数往后推,负数往前移动

date = cal.getTime();//这个时间就是日期往后推一天的日期结果,即前一天日期

SimpleDateFormat sdf = new SimpleDateFormat(pattern);//日期格式

String before_date_str = sdf.format(date);//前一天日期

//将日期字符串转化为指定日期格式类型

Date before_date = stringToDate(before_date_str,pattern);

return before_date;

}

/**

* 获得指定日期的前一天

* @param date_str 指定日期字符串

* @param pattern 日期格式类型,如yyyy-MM-dd,yyyy年MM月dd日 HH:mm:ss

* @return

* @throws ParseException

*/

public static String getBreforeDay(String date_str,String pattern) throws ParseException {

//将日期字符串转化为指定日期格式类型

Date date = stringToDate(date_str,pattern);

Calendar cal = new GregorianCalendar();

cal.setTime(date);//设置时间

cal.add(Calendar.DATE,-1);//把日期往后增加一天.整数往后推,负数往前移动

date = cal.getTime();//这个时间就是日期往后推一天的日期结果,即前一天日期

SimpleDateFormat sdf = new SimpleDateFormat(pattern);//日期格式

String before_date_str = sdf.format(date);//前一天日期

return before_date_str;

}

}

测试类:Test.java

package com.hrg;

import java.text.ParseException;

/**

* 测试类

* @author 格姗知识圈

*/

public class Test {

public static void main(String[] args) throws ParseException {

//日期格式类型

String pattern = "yyyy-MM-dd";

//获得今天日期

System.out.println("---------获得今天日期---------");

String today = DateTools.getToday(pattern);

System.out.println("今天日期:"+today);

//获得明天日期

System.out.println("---------获得明天日期---------");

String tomorrow = DateTools.getTomorrow(pattern);

System.out.println("明天日期:"+tomorrow);

//获得昨天日期

System.out.println("---------获得昨天日期---------");

String yesterday = DateTools.getYesterday(pattern);

System.out.println("昨天日期:"+yesterday);

//获得指定日期的后一天

System.out.println("---------获得指定日期的后一天---------");

String date_str = "2018-10-03";

System.out.println("指定日期:"+date_str);

String after_date = DateTools.getAfterDay(date_str,pattern);

System.out.println("指定日期的后一天:"+after_date);

//获得指定日期的后一天

System.out.println("---------获得指定日期的前一天---------");

System.out.println("指定日期:"+date_str);

String before_date = DateTools.getBreforeDay(date_str,pattern);

System.out.println("指定日期的前一天:"+before_date);

}

}

运行结果:

---------获得今天日期---------

今天日期:2018-11-20

---------获得明天日期---------

明天日期:2018-11-21

---------获得昨天日期---------

昨天日期:2018-11-19

---------获得指定日期的后一天---------

指定日期:2018-10-03

指定日期的后一天:2018-10-04

---------获得指定日期的前一天---------

指定日期:2018-10-03

指定日期的前一天:2018-10-02

你看完之后,相信对日期转化有了更好的了解。当然,代码里面有部分是冗余的,主要是为了方便让大家清晰看懂。你看懂理解后,可以根据业务需要进行适当的修改。

四、java类是什么?

Java类就是class,用于承载代码逻辑的文本,也就是你开发的业务。

五、java ftp fz

Java是一种广泛使用的编程语言,具有跨平台特性,使得它成为许多开发人员的首选。今天,我们将讨论如何使用Java编写一个简单的FTP客户端程序来实现文件传输功能。

FTP协议

FTP(File Transfer Protocol)是一种用于在网络上交换文件的标准协议。通过FTP,用户可以上传和下载文件,创建文件夹,删除文件等。在Java中,我们可以使用一些库来实现FTP客户端功能,其中最常用的是Apache的`commons-net`库。

使用commons-net库

要在Java中实现FTP客户端功能,首先我们需要添加`commons-net`库的依赖。可以通过Maven或手动下载jar包的方式引入该库。

接下来,我们将演示如何编写一个简单的Java程序,使用`commons-net`库连接到FTP服务器,并上传一个文件。

示例代码

import org.apache.commons.net.ftp.FTP; import org.apache.commons.net.ftp.FTPClient; import java.io.File; import java.io.FileInputStream; import java.io.IOException; public class FTPUploader { public static void main(String[] args) { String server = "ftp.example.com"; int port = 21; String user = "username"; String pass = "password"; FTPClient ftpClient = new FTPClient(); try { ftpClient.connect(server, port); ftpClient.login(user, pass); ftpClient.enterLocalPassiveMode(); ftpClient.setFileType(FTP.BINARY_FILE_TYPE); File localFile = new File("/path/to/local/file.txt"); String remoteFile = "file.txt"; FileInputStream inputStream = new FileInputStream(localFile); ftpClient.storeFile(remoteFile, inputStream); inputStream.close(); ftpClient.logout(); } catch (IOException e) { e.printStackTrace(); } finally { try { if (ftpClient.isConnected()) { ftpClient.disconnect(); } } catch (IOException ex) { ex.printStackTrace(); } } } }

在这个简单的示例中,我们创建了一个FTPUploader类,连接到FTP服务器,上传一个文件到服务器上指定的路径。

总结

通过使用Java编写FTP客户端程序,我们可以轻松实现文件传输功能。借助`commons-net`库,连接到FTP服务器,上传或下载文件变得非常简单。希望这个示例能帮助您更好地理解如何在Java中使用FTP。

六、java连不上ftp

对于许多开发人员来说,Java连接FTP服务器是一个常见的任务,但有时候会遇到连接不上的问题。无论是在开发阶段还是在生产环境中,这种问题都可能导致严重的影响。在本文中,我们将讨论一些可能导致Java连接不上FTP的常见原因,并提供一些建议来解决这些问题。

网络问题

首先,要确认Java连接不上FTP是否是由网络问题导致的。可能是由于网络连接不稳定、防火墙阻塞了FTP端口、或者FTP服务器本身出现了故障。在这种情况下,建议检查网络连接、防火墙设置以及与FTP服务器的通信状态。

代码问题

其次,Java连接不上FTP还可能是由于代码问题造成的。可能是由于代码中的错误、配置问题、或者权限不足等原因。在这种情况下,建议仔细检查Java连接FTP的代码,确保代码逻辑正确、配置信息准确,并且具备足够的权限来连接FTP服务器。

FTP服务器配置问题

另外,Java连接不上FTP还可能是由于FTP服务器配置问题引起的。可能是由于FTP服务器的配置不正确、权限设置有误、或者FTP服务器并发连接数已满等原因。在这种情况下,建议联系FTP服务器管理员,确认服务器配置正确,并确保连接数不会超过限制。

解决方案

针对Java连接不上FTP的问题,我们可以采取以下一些解决方案:

  • 检查网络连接是否正常。
  • 确保防火墙未阻止FTP连接。
  • 检查Java代码逻辑和配置信息。
  • 确认FTP服务器配置正确,并具备连接权限。
  • 优化FTP连接代码,处理异常情况。

总结

在开发过程中,经常会遇到Java连接不上FTP的问题,这可能导致开发进度受阻,影响系统的正常运行。因此,我们需要及时发现并解决这些问题,以确保系统的稳定性和可靠性。通过理解可能的原因,并采取相应措施,我们可以更好地解决Java连接FTP的问题,保障系统的正常运行。

七、php ftp文件操作

PHP FTP文件操作指南

在web开发中,经常会涉及文件的上传、下载以及管理,而FTP(File Transfer Protocol)是一种常见的文件传输协议,使用PHP来进行FTP文件操作是一种常见的做法。本文将介绍如何使用PHP来进行FTP文件操作,包括连接FTP服务器、上传文件、下载文件等操作。

使用PHP连接FTP服务器

要连接FTP服务器,首先需要使用PHP中的ftp_connect函数来建立连接。以下是一个示例代码,演示如何连接到FTP服务器:

<?php $ftp_server = "ftp.example.com"; $ftp_username = "username"; $ftp_password = "password"; $conn_id = ftp_connect($ftp_server); if ($conn_id) { // 连接成功 if (ftp_login($conn_id, $ftp_username, $ftp_password)) { echo "FTP连接成功"; } else { echo "FTP登录失败"; } } else { echo "FTP连接失败"; } ?>

上传文件到FTP服务器

一旦连接到FTP服务器,就可以使用ftp_put函数来上传文件。以下是一个示例代码,演示如何上传文件到FTP服务器:

        
            <?php
            $local_file = "local_file.txt";
            $remote_file = "remote_file.txt";
            
            if (ftp_put($conn_id, $remote_file, $local_file, FTP_ASCII)) {
                echo "文件上传成功";
            } else {
                echo "文件上传失败";
            }
            ?>
        
    

从FTP服务器下载文件

类似地,使用ftp_get函数可以从FTP服务器下载文件。以下是一个示例代码,演示如何从FTP服务器下载文件:

        
            <?php
            $local_file = "local_file.txt";
            $remote_file = "remote_file.txt";
            
            if (ftp_get($conn_id, $local_file, $remote_file, FTP_ASCII)) {
                echo "文件下载成功";
            } else {
                echo "文件下载失败";
            }
            ?>
        
    

列出FTP服务器上的文件列表

使用ftp_nlist函数可以列出FTP服务器上的文件列表。以下是一个示例代码,演示如何列出FTP服务器上的文件列表:

        
            <?php
            $files = ftp_nlist($conn_id, ".");
            if ($files) {
                echo "FTP服务器文件列表:<ul>";
                foreach ($files as $file) {
                    echo "<li>$file</li>";
                }
                echo "</ul>";
            } else {
                echo "无法获取文件列表";
            }
            ?>
        
    

关闭FTP连接

最后,在完成FTP文件操作后,应该使用ftp_close函数关闭FTP连接,以释放资源。以下是一个示例代码,演示如何关闭FTP连接:

        
            <?php
            ftp_close($conn_id);
            ?>
        
    

总结一下,本文介绍了如何使用PHP进行FTP文件操作,包括连接FTP服务器、上传文件、下载文件、列出文件列表以及关闭连接。掌握这些方法可以让开发人员更好地管理和传输文件,提高工作效率。

八、java迷宫move类意思?

这是一个典型的pojo类,里面封装了set和get方法.两个变量intX和intY是需要移动的坐标,构造一个move类可以有无参和有参两种方法,而且可以用setX和setY来设置某个move对象的属性,用getX和getY来获取某个move对象的属性

九、java什么叫工具类?

我觉得这个问题好像一句话就能概括,Java工具类就是可以实现某个特定功能的类。

当然这个类必须具有一个特点,就是可重用性。如果一段代码仅仅在程序中使用一次,那么抽取出来的意义就不大。只有当某段代码需要在多个地方使用时,就可以考虑对这段代码进行抽取。

Java中的工具类大概分两种:已有的和自己编写的。由于Java已经存在了十几年,且一直很火。除了JDK自带的一些工具类外,现在还有不少由别的企业或组织写的工具类。比如:Apache的各种XXUtils, Hutool的各种utils等。如果有现成的工具类,我们还是直接引用就好。但是,有时候网上的工具类并无法满足我们的业务需求,这时候就需要自己编写。

十、java图形类是什么?

java图形类库常见的有swing和swt,这两个用的比较多些,像著名的开源工具eclipse就是swt开发的。如果你问得是画图的类的吧,一般是Graphics2D

顶一下
(0)
0%
踩一下
(0)
0%
相关评论
我要评论
点击我更换图片