`

java file console

阅读更多
java目录操作2009-04-12 18:51import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.StringTokenizer;
public class FileOperate {
      private String message;
      public FileOperate() {
      }
      /**
       * 读取文本文件内容
       * @param filePathAndName 带有完整绝对路径的文件名
       * @param encoding 文本文件打开的编码方式
       * @return 返回文本文件的内容
       */
      public String readTxt(String filePathAndName,String encoding) throws IOException{
       encoding = encoding.trim();
       StringBuffer str = new StringBuffer("");
       String st = "";
       try{
        FileInputStream fs = new FileInputStream(filePathAndName);
        InputStreamReader isr;
        if(encoding.equals("")){
         isr = new InputStreamReader(fs);
        }else{
         isr = new InputStreamReader(fs,encoding);
        }
        BufferedReader br = new BufferedReader(isr);
        try{
         String data = "";
         while((data = br.readLine())!=null){
           str.append(data+" ");
         }
        }catch(Exception e){
         str.append(e.toString());
        }
        st = str.toString();
       }catch(IOException es){
        st = "";
       }
       return st;    
      }

      /**
       * 新建目录
       * @param folderPath 目录
       * @return 返回目录创建后的路径
       */
      public String createFolder(String folderPath) {
          String txt = folderPath;
          try {
              java.io.File myFilePath = new java.io.File(txt);
              txt = folderPath;
              if (!myFilePath.exists()) {
                  myFilePath.mkdir();
              }
          }
          catch (Exception e) {
              message = "创建目录操作出错";
          }
          return txt;
      }
    
      /**
       * 多级目录创建
       * @param folderPath 准备要在本级目录下创建新目录的目录路径 例如 c:myf
       * @param paths 无限级目录参数,各级目录以单数线区分 例如 a|b|c
       * @return 返回创建文件后的路径 例如 c:myfa c
       */
      public String createFolders(String folderPath, String paths){
          String txts = folderPath;
          try{
              String txt;
              txts = folderPath;
              StringTokenizer st = new StringTokenizer(paths,"|");
              for(int i=0; st.hasMoreTokens(); i++){
                      txt = st.nextToken().trim();
                      if(txts.lastIndexOf("/")!=-1){
                          txts = createFolder(txts+txt);
                      }else{
                          txts = createFolder(txts+txt+"/");   
                      }
              }
         }catch(Exception e){
             message = "创建目录操作出错!";
         }
          return txts;
      }

    
      /**
       * 新建文件
       * @param filePathAndName 文本文件完整绝对路径及文件名
       * @param fileContent 文本文件内容
       * @return
       */
      public void createFile(String filePathAndName, String fileContent) {
     
          try {
              String filePath = filePathAndName;
              filePath = filePath.toString();
              File myFilePath = new File(filePath);
              if (!myFilePath.exists()) {
                  myFilePath.createNewFile();
              }
              FileWriter resultFile = new FileWriter(myFilePath);
              PrintWriter myFile = new PrintWriter(resultFile);
              String strContent = fileContent;
              myFile.println(strContent);
              myFile.close();
              resultFile.close();
          }
          catch (Exception e) {
              message = "创建文件操作出错";
          }
      }


      /**
       * 有编码方式的文件创建
       * @param filePathAndName 文本文件完整绝对路径及文件名
       * @param fileContent 文本文件内容
       * @param encoding 编码方式 例如 GBK 或者 UTF-8
       * @return
       */
      public void createFile(String filePathAndName, String fileContent, String encoding) {
     
          try {
              String filePath = filePathAndName;
              filePath = filePath.toString();
              File myFilePath = new File(filePath);
              if (!myFilePath.exists()) {
                  myFilePath.createNewFile();
              }
              PrintWriter myFile = new PrintWriter(myFilePath,encoding);
              String strContent = fileContent;
              myFile.println(strContent);
              myFile.close();
          }
          catch (Exception e) {
              message = "创建文件操作出错";
          }
      }


      /**
       * 删除文件
       * @param filePathAndName 文本文件完整绝对路径及文件名
       * @return Boolean 成功删除返回true遭遇异常返回false
       */
      public boolean delFile(String filePathAndName) {
       boolean bea = false;
          try {
              String filePath = filePathAndName;
              File myDelFile = new File(filePath);
              if(myDelFile.exists()){
               myDelFile.delete();
               bea = true;
              }else{
               bea = false;
               message = (filePathAndName+"删除文件操作出错");
              }
          }
          catch (Exception e) {
              message = e.toString();
          }
          return bea;
      }
    


      /**
       * 删除文件夹
       * @param folderPath 文件夹完整绝对路径
       * @return
       */
      public void delFolder(String folderPath) {
          try {
              delAllFile(folderPath); //删除完里面所有内容
              String filePath = folderPath;
              filePath = filePath.toString();
              java.io.File myFilePath = new java.io.File(filePath);
              myFilePath.delete(); //删除空文件夹
          }
          catch (Exception e) {
              message = ("删除文件夹操作出错");
          }
      }
    
    
      /**
       * 删除指定文件夹下所有文件
       * @param path 文件夹完整绝对路径
       * @return
       * @return
       */
      public boolean delAllFile(String path) {
       boolean bea = false;
          File file = new File(path);
          if (!file.exists()) {
              return bea;
          }
          if (!file.isDirectory()) {
              return bea;
          }
          String[] tempList = file.list();
          File temp = null;
          for (int i = 0; i < tempList.length; i++) {
              if (path.endsWith(File.separator)) {
                  temp = new File(path + tempList[i]);
              }else{
                  temp = new File(path + File.separator + tempList[i]);
              }
              if (temp.isFile()) {
                  temp.delete();
              }
              if (temp.isDirectory()) {
                  delAllFile(path+"/"+ tempList[i]);//先删除文件夹里面的文件
                  delFolder(path+"/"+ tempList[i]);//再删除空文件夹
                  bea = true;
              }
          }
          return bea;
      }


      /**
       * 复制单个文件
       * @param oldPathFile 准备复制的文件源
       * @param newPathFile 拷贝到新绝对路径带文件名
       * @return
       */
      public void copyFile(String oldPathFile, String newPathFile) {
          try {
              int bytesum = 0;
              int byteread = 0;
              File oldfile = new File(oldPathFile);
              if (oldfile.exists()) { //文件存在时
                  InputStream inStream = new FileInputStream(oldPathFile); //读入原文件
                  FileOutputStream fs = new FileOutputStream(newPathFile);
                  byte[] buffer = new byte[1444];
                  while((byteread = inStream.read(buffer)) != -1){
                      bytesum += byteread; //字节数 文件大小
                      System.out.println(bytesum);
                      fs.write(buffer, 0, byteread);
                  }
                  inStream.close();
              }
          }catch (Exception e) {
              message = ("复制单个文件操作出错");
          }
      }
    

      /**
       * 复制整个文件夹的内容
       * @param oldPath 准备拷贝的目录
       * @param newPath 指定绝对路径的新目录
       * @return
       */
      public void copyFolder(String oldPath, String newPath) {
          try {
              new File(newPath).mkdirs(); //如果文件夹不存在 则建立新文件夹
              File a=new File(oldPath);
              String[] file=a.list();
              File temp=null;
              for (int i = 0; i < file.length; i++) {
                  if(oldPath.endsWith(File.separator)){
                      temp=new File(oldPath+file[i]);
                  }else{
                      temp=new File(oldPath+File.separator+file[i]);
                  }
                  if(temp.isFile()){
                      FileInputStream input = new FileInputStream(temp);
                      FileOutputStream output = new FileOutputStream(newPath + "/" +
                      (temp.getName()).toString());
                      byte[] b = new byte[1024 * 5];
                      int len;
                      while ((len = input.read(b)) != -1) {
                          output.write(b, 0, len);
                      }
                      output.flush();
                      output.close();
                      input.close();
                  }
                  if(temp.isDirectory()){//如果是子文件夹
                      copyFolder(oldPath+"/"+file[i],newPath+"/"+file[i]);
                  }
              }
          }catch (Exception e) {
              message = "复制整个文件夹内容操作出错";
          }
      }


      /**
       * 移动文件
       * @param oldPath
       * @param newPath
       * @return
       */
      public void moveFile(String oldPath, String newPath) {
          copyFile(oldPath, newPath);
          delFile(oldPath);
      }
    

      /**
       * 移动目录
       * @param oldPath
       * @param newPath
       * @return
       */
      public void moveFolder(String oldPath, String newPath) {
          copyFolder(oldPath, newPath);
          delFolder(oldPath);
      }
      public String getMessage(){
          return this.message;
      }
}

分享到:
评论

相关推荐

    GrepConsole.zip

    在IDEA中,可以通过"File" -&gt; "Settings" -&gt; "Plugins"进入插件市场,搜索"GrepConsole",找到后点击"Install"进行安装。安装完成后,重启IDEA,插件即生效。 其次,配置GrepConsole是提升使用体验的关键。在...

    java应用程序-签名及截图

    ImageIO.write(image, "PNG", new File("screenshot.png")); } catch (IOException e) { e.printStackTrace(); } } } ``` 此代码将捕获整个屏幕的图像,并将其保存为名为“screenshot.png”的PNG文件。同时,...

    rocketmq-console-ng-1.0.0.jar

    这是用maven编译好的rocketmq控制台jar包,可以直接用 java -jar xxxx.jar来运行,我配置的端口是8082

    IDEA 日志输出样式插件grep console

    1. 打开IntelliJ IDEA,进入"File" -&gt; "Settings"(或者使用快捷键Ctrl+Alt+S)。 2. 在设置界面左侧选择"Plugins",然后点击右上角的"Marketplace"。 3. 在搜索框中输入"grep console",找到该插件并点击"Install...

    dos命令测试java jar文件 命令行下运行JUnit测试 命令运行java

    java --module-path junit-platform-console-1.8.2.jar --add-modules=junit-platform-console,junit-jupiter-api \ -cp your_test_jar.jar org.junit.platform.console.ConsoleLauncher ``` 这里,`junit-...

    java反汇编工具.rar

    Type "jasmin mytest" in console(make sure that porject jasmin has been made), jasmin will output java instructions in console. 4. Known problems Error class filename may cause CRASH of JASMin.

    Java版Linux文件上传下载、windows本地文件上传下载

    首先,让我们关注Java在文件操作中的核心类:`java.io.File`、`java.nio.file`包下的`Paths`和`Files`。这些类提供了读取、写入、创建和删除文件的基本功能。在跨平台环境下,Java的I/O API确保了代码在不同操作系统...

    java网络编程题库管理

    在控制台实现题库管理,意味着我们将使用Java的Console类来进行用户交互。用户可以通过输入命令来执行添加、修改或删除试题的操作。为了实现这些功能,可以定义一个题库类(如QuestionBank),包含一个试题列表...

    在线拍照Java代码实现

    import java.nio.file.Paths; @RestController public class ImageUploadController { @PostMapping("/upload") public ResponseEntity&lt;String&gt; upload(@RequestParam("image") MultipartFile file) { if (!...

    java上传图片到七牛云 七牛云 七牛 图片上传 demo JS java

    在本文中,我们将深入探讨如何使用Java和JavaScript将图片上传到七牛云存储服务。七牛云是一个提供云端存储和CDN加速的平台,广泛应用于图片、视频等多媒体资源的托管。图片上传功能是其核心服务之一,为开发者提供...

    Notepad++ Java开发环境设置

    Notepad++ 环境变量表 1 为 Notepad++ 定义的这些环境,可以作为参数传递给外部工具变量名称含义例子FULL_CURRENT_PATH 文件路径名称E:\java\HelloNpp.javaCURRENT_DIRECTORY 文件目录E:\java\FILE_NAME 文 件名称...

    Java程序快速转换为windows服务运行

    `[jarfile/path]`应该被替换为你的Java应用程序依赖的JAR文件所在的路径。 4. **设置JNI库路径**: ```properties wrapper.java.library.path.1=. ``` 如果你的Java程序依赖于本地库(如JNI),需要在这里指明...

    Java开发常见问题汇总.ppt

    在Java开发过程中,遇到的问题多种多样,从环境配置到代码编写,每个环节都有可能出现问题。以下是一些关于Java开发的常见问题及其解决方法。 首先,确保Java开发环境的正确安装和配置。在Windows系统中,可以通过...

    java英语练习题

    ##### 题目8: Which of the following statements is correct to display "Welcome to Java" on the console? - **选项**: - 1. System.out.println(WelcometoJava); - 2. System.out.println("Welcome to Java");...

    java的jsp实现视频播放

    在Java的Web开发中,JSP(JavaServer Pages)是一种常用的动态网页技术,它允许开发者在HTML中嵌入Java代码,以实现动态内容的展示。本篇将详细讲解如何使用JSP来实现在网页上播放视频,这涉及到的主要知识点包括...

    Java Service Wrapper 将你的java应用程序安装成windows系统服务

    5. **日志管理**:Wrapper支持日志记录,可以在配置文件中设置`wrapper.logfile`和`wrapper.console.logfile`来控制日志输出位置和格式。 6. **异常处理**:通过配置`wrapper.stop.timeout`和`wrapper.crash程序`,...

    java Log日志规范

    2. **Appender**: 配置日志输出的目标,例如控制台(Console)或文件(File),如`appender.stdout.type=Console`,`appender.file.type=File`。 3. **Layout**: 定义日志格式,如`appender.stdout.layout.type=...

    Java Service Wrapper部署说明

    5. **日志配置**:`wrapper.logfile`定义日志文件的位置,而`wrapper.console.format`和`wrapper.logfile.format`则控制日志输出的格式。 6. **服务安装**:在Windows上,可以使用`wrapper.ntservice.name`和`...

    自动售票系统(JAVA课程代码)

    JAVA提供了File、Scanner和PrintWriter等类用于文件的读写。 4. **控制流**:JAVA中的if-else语句、for循环、while循环等用于控制程序的执行流程。在自动售票系统中,这些语句常用于处理用户输入、判断条件以及循环...

    java写日志的两种方式

    log4j.rootLogger=INFO, console, file # 控制台输出 log4j.appender.console=org.apache.log4j.ConsoleAppender log4j.appender.console.Target=System.out log4j.appender.console.layout=org.apache.log4j....

Global site tag (gtag.js) - Google Analytics