java中文件操作大全

基于Simulink的自适应反步法(Adaptive Backstepping)控制​ 本文针对非线性系统控制中未知参数和强非线性耦合的挑战,提出基于Simulink的自适应反步法解决方案。通过融合参数在线估计与反步递归设计,该方法显著提升了永磁同步电机(PMSM)速度控制的鲁棒性,使跟踪误差从20%降至3%,参数估计收敛时间小于0.5秒。文章详细阐述了从算法推导到Simulink实现的完整流程,包括系统架构设计、核心算法推导(以PMSM为例)、模块化建模方法、参数优化策略以及工程部署建议。提供的自适应控制器MATLAB代码和关键参数表可直接应用于实际工程,为电机驱动、机械臂等非线性系统控制提 阅读详情
一.获得控制台用户输入的信息
/**获得控制台用户输入的信息
     * 
@return
     * 
@throws IOException
     
*/

    
public String getInputMessage() throws IOException{
        System.out.println(
"请输入您的命令∶");
        
byte buffer[]=new byte[1024];
        
int count=System.in.read(buffer);
        
char[] ch=new char[count-2];//最后两位为结束符,删去不要
        for(int i=0;i<count-2;i++)
            ch[i]
=(char)buffer[i];
        String str
=new String(ch);
        
return str;
    }

可以返回用户输入的信息,不足之处在于不支持中文输入,有待进一步改进。

二.复制文件

1.以文件流的方式复制文件

/**以文件流的方式复制文件
     * 
@param src 文件源目录
     * 
@param dest 文件目的目录
     * 
@throws IOException  
     
*/

    
public void copyFile(String src,String dest) throws IOException{
        FileInputStream in
=new FileInputStream(src);
        File file
=new File(dest);
        
if(!file.exists())
            file.createNewFile();
        FileOutputStream out
=new FileOutputStream(file);
        
int c;
        
byte buffer[]=new byte[1024];
        
while((c=in.read(buffer))!=-1){
            
for(int i=0;i<c;i++)
                out.write(buffer[i]);        
        }

        in.close();
        out.close();
    }

该方法经过测试,支持中文处理,并且可以复制多种类型,比如txt,xml,jpg,doc等多种格式

三.写文件

1.利用PrintStream写文件

/**
     * 文件输出示例
     
*/

    
public void PrintStreamDemo(){
        
try {
            FileOutputStream out
=new FileOutputStream("D:/test.txt");
            PrintStream p
=new PrintStream(out);
            
for(int i=0;i<10;i++)
                p.println(
"This is "+i+" line");
        }
 catch (FileNotFoundException e) {
            e.printStackTrace();
        }

    }

2.利用StringBuffer写文件

public void StringBufferDemo() throws IOException...{
        File file
=new File("/root/sms.log");
        
if(!file.exists())
            file.createNewFile();
        FileOutputStream out
=new FileOutputStream(file,true);        
        
for(int i=0;i<10000;i++)...{
            StringBuffer sb
=new StringBuffer();
            sb.append(
"这是第"+i+"行:前面介绍的各种方法都不关用,为什么总是奇怪的问题 ");
            out.write(sb.toString().getBytes(
"utf-8"));
        }
        
        out.close();
    }

该方法可以设定使用何种编码,有效解决中文问题。

四.文件重命名

    /**文件重命名
     * 
@param path 文件目录
     * 
@param oldname  原来的文件名
     * 
@param newname 新文件名
     
*/

    
public void renameFile(String path,String oldname,String newname){
        
if(!oldname.equals(newname)){//新的文件名和以前文件名不同时,才有必要进行重命名
            File oldfile=new File(path+"/"+oldname);
            File newfile
=new File(path+"/"+newname);
            
if(newfile.exists())//若在该目录下已经有一个文件和新文件名相同,则不允许重命名
                System.out.println(newname+"已经存在!");
            
else{
                oldfile.renameTo(newfile);
            }
 
        }
         
    }
五.转移文件目录

 

转移文件目录不等同于复制文件,复制文件是复制后两个目录都存在该文件,而转移文件目录则是转移后,只有新目录中存在该文件。

    /**转移文件目录
     * 
@param filename 文件名
     * 
@param oldpath 旧目录
     * 
@param newpath 新目录
     * 
@param cover 若新目录下存在和转移文件具有相同文件名的文件时,是否覆盖新目录下文件,cover=true将会覆盖原文件,否则不操作
     
*/

    
public void changeDirectory(String filename,String oldpath,String newpath,boolean cover){
        
if(!oldpath.equals(newpath)){
            File oldfile
=new File(oldpath+"/"+filename);
            File newfile
=new File(newpath+"/"+filename);
            
if(newfile.exists()){//若在待转移目录下,已经存在待转移文件
                if(cover)//覆盖
                    oldfile.renameTo(newfile);
                
else
                    System.out.println(
"在新目录下已经存在:"+filename);
            }

            
else{
                oldfile.renameTo(newfile);
            }

        }
       
    }

 

六.读文件

1.利用FileInputStream读取文件

    /**读文件
     * 
@param path
     * 
@return
     * 
@throws IOException
     
*/

    
public String FileInputStreamDemo(String path) throws IOException{
        File file
=new File(path);
        
if(!file.exists()||file.isDirectory())
            
throw new FileNotFoundException();
        FileInputStream fis
=new FileInputStream(file);
        
byte[] buf = new byte[1024];
        StringBuffer sb
=new StringBuffer();
        
while((fis.read(buf))!=-1){
            sb.append(
new String(buf));    
            buf
=new byte[1024];//重新生成,避免和上次读取的数据重复
        }

        
return sb.toString();
    }

2.利用BufferedReader读取

在IO操作,利用BufferedReader和BufferedWriter效率会更高一点

    /**读文件
     * 
@param path
     * 
@return
     * 
@throws IOException
     
*/

    
public String BufferedReaderDemo(String path) throws IOException{
        File file
=new File(path);
        
if(!file.exists()||file.isDirectory())
            
throw new FileNotFoundException();
        BufferedReader br
=new BufferedReader(new FileReader(file));
        String temp
=null;
        StringBuffer sb
=new StringBuffer();
        temp
=br.readLine();
        
while(temp!=null){
            sb.append(temp
+" ");
            temp
=br.readLine();
        }

        
return sb.toString();
    }

3.利用dom4j读取xml文件

    /**从目录中读取xml文件
     * 
@param path 文件目录
     * 
@return
     * 
@throws DocumentException
     * 
@throws IOException
     
*/

    
public Document readXml(String path) throws DocumentException, IOException{
        File file
=new File(path);
        BufferedReader bufferedreader 
= new BufferedReader(new FileReader(file));
        SAXReader saxreader 
= new SAXReader();
        Document document 
= (Document)saxreader.read(bufferedreader);
        bufferedreader.close();
        
return document;
    }

 

七.创建文件(文件夹)
1.创建文件夹
 /**创建文件夹
     * 
@param path  目录
     
*/

    
public void createDir(String path){
        File dir
=new File(path);
        
if(!dir.exists())
            dir.mkdir();
    }

2.创建新文件
/**创建新文件
     * 
@param path 目录
     * 
@param filename 文件名
     * 
@throws IOException
     
*/

    
public void createFile(String path,String filename) throws IOException{
        File file
=new File(path+"/"+filename);
        
if(!file.exists())
            file.createNewFile();
    }
八.删除文件(目录)
1.删除文件
    /**删除文件
     * 
@param path 目录
     * 
@param filename 文件名
     
*/

    
public void delFile(String path,String filename){
        File file
=new File(path+"/"+filename);
        
if(file.exists()&&file.isFile())
            file.delete();
    }

2.删除目录
要利用File类的delete()方法删除目录时,必须保证该目录下没有文件或者子目录,否则删除失败,因此在实际应用中,我们要删除目录,必须利用递归删除该目录下的所有子目录和文件,然后再删除该目录。
 /**递归删除文件夹
     * 
@param path
     
*/

    
public void delDir(String path){
        File dir
=new File(path);
        
if(dir.exists()){
            File[] tmp
=dir.listFiles();
            
for(int i=0;i<tmp.length;i++){
                
if(tmp[i].isDirectory()){
                    delDir(path
+"/"+tmp[i].getName());
                }

                
else{
                    tmp[i].delete();
                }

            }

            dir.delete();
        }

    }
 
【Unity工具篇】| 使用YooAsset接入自己的游戏项目,实现完整热更新流程 前面文章介绍了YooAsset的原理和接入官方示例文档的文章介绍,本文使用YooAsset接入自己的游戏项目做示例。 【Unity工具篇】| 资源管理插件YooAsset,原理及相关配置 【Unity工具篇】| 游戏完整资源热更新流程,YooAsset官方示例项目 具体接入方法有很多种,本文会参照官方示例 Space Shooter 太空战机DEMO 用到的方式接入自己的游戏项目。 阅读详情

相关推荐

FPGA实现Gardner环定时同步:Verilog代码与Testbench实战解析

本文深入解析了在FPGA上实现Gardner环定时同步的完整过程,详细阐述了其非数据辅助的定时误差检测原理。通过Verilog代码实战,展示了内插滤波器、定时误差检测器、环路滤波器和数控振荡器等核心模块的设计,并提供了完整的Testbench验证方法,帮助开发者解决数字通信系统中的时钟同步难题。

gpt4scribbler的博客 577

java文件操作大全_Java文件操作大全

//1.创建文件夹//import java.io.*;File myFolderPath = new File(str1);try {if (!myFolderPath.exists()) {myFolderPath.mkdir();}}catch (Exception e) {System.out.println("新建目录操作出错");e.printStackTrace();}//2.创建文...

weixin_29528865的博客 161

【49】软考软件设计师——冲刺复盘:高频易错点与应试策略|复盘清单+应试技巧

本文是《软件设计师·50讲通关|从零基础到工程师职称》专栏第49篇,属于**模块六:冲刺与模拟**终篇,聚焦考前最后阶段的“精准复盘+应试提分”。全文围绕“高频易错点清零、答题时间优化、应急处理落地”三大核心,梳理9大知识领域的典型易错点(附避坑技巧)、优化版答题时间分配(含取舍策略)、考中全场景应急方案,配套可直接使用的“复盘清单”和“应试技巧手册”,帮助考生在最后阶段查漏补缺、固化得分逻辑,避免因低级错误丢分,以“稳、准、快”的状态应对考试。下一篇第50篇(终章)将进行全专栏知识体系回顾、考试策略总结

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 441

Java文件操作大全

Java文件操作大全   1.创建文件夹 //import java.io.*; File myFolderPath = new File(%%1); try { if (!myFolderPath.exists()) {    myFolderPath.mkdir(); } } catch (Exception e) { System.out.println("新建目录操作出错"); e.pri

l刘七的专栏 1331

UMI——斯坦福刷盘机器人:通过手持夹爪革新数据收集方式,且使用视觉SLAM和Diffusion Policy预测动作

没想到今年年初的斯坦福mobilealoha的热度刚过,而到今年2月的下旬,斯坦福另一个团队又推出了UMI刷盘机器人,且这两个团队还互相认识、还在一块共同切磋(顺带小小感叹一下,斯坦福的氛围是真好而且真高产)斯坦福UMI刷盘机器人其与mobile aloha(以及AirExo: Low-Cost Exoskeletons for Learning Whole-Arm Manipulation in the Wild)最大的不同在于其收集数据处理的非真实的机器人,而是一个手持夹持器(从而大幅降低成本)

u013250861的博客 1357

Python 实战:全面解析“微信搜一搜”内容爬取,从入门到企业级架构

本文将带你从零搭建爬虫项目,采用 Requests、Scrapy、Selenium、Proxy 池、中间人监控(如 Fiddler/mitmproxy)、分布式调度、数据库持久化、断点续抓等方案,实现可持续、抗封能力强的内容抓取系统。理解“微信搜一搜”页面结构与 Javascript 渲染逻辑;使用 Scrapy 框架搭建分布式爬虫;使用 Selenium 模拟浏览器抓取;构建代理池提升爬取成功率;对抗验证码、IP 封禁与 cookie 过期问题;

2201_76125261的博客 1393

JAVA文件操作大全

JAVA文件操作大全 收藏 1.创建文件夹 File myFolderPath = new File(%%1); try { if (!myFolderPath.exists()) { myFolderPath.mkdir(); } } catch (Exception e) { System.out.println("新建目录...

156

流体动力学仿真软件:Star-CCM+_(15).用户自定义函数与模型

用户自定义函数(User-Defined Functions, UDFs)允许用户编写自己的函数,并在仿真中调用这些函数。UDFs可以用于定义复杂的边界条件、源项、材料属性等。Star-CCM+支持多种编程语言,包括C++、Fortran和Java等,其中最常用的语言是Java。用户自定义模型(User-Defined Models, UDMs)允许用户在仿真中引入自定义的物理模型。这些模型可以用于描述流体行为、化学反应、多相流等复杂现象。Star-CCM+提供了丰富的API来支持UDMs的开发。

kkchenjj的博客 556

java文件操作大全

java文件操作大全文件的建立/检查与删除文件的建立、检查与删除String path=request.getRealPath("");//out.println(path);File f=new File(path,"File.txt");//out.println(f);//out.println(f.exists());if(f.exists()){//检查File.txt是否存在f.del

键者天行 6759

STM32实现简单的智能电梯控制

上述代码实现了一个简单的智能电梯控制器。电梯的状态包括IDLE(停止)、UP(向上移动)和DOWN(向下移动)三种状态。通过向上和向下按钮的按下,可以控制电梯移动到指定的楼层。在主循环中,不断读取当前楼层的按钮状态,并根据电梯状态决定执行的动作。具体的楼层数量和按钮的GPIO引脚可以根据实际情况进行调整。要实现简单的智能电梯控制,我们可以使用STM32微控制器来实现。

2401_85258012的博客 338

UE5实现物体高亮描边效果(含UE相关源码浅析)

UE5实现物体高亮描边效果

专注GIS开发 7335

java文件操作大全_java文件操作大全

java文件操作大全文件的建立/检查与删除文件的建立、检查与删除Stringpath=request.getRealPath("");//out.println(path);Filef=newFile(path,"File.txt");//out.println(f);//out.println(f.exists());if(f.exists()){//检查File.txt是否存在f.del...

weixin_39998273的博客 61

【生产实践】PostgreSQL高可用Patroni安装(超详细已踩坑)

一 安装Patroni 0 Patroni 对Python的版本要求 我安装的是Patroni最新版本 :4.0.3,Patroni 对Python 版本有要求,没有具体的版本矩阵,但是根据每个版本发布信息可以得到以下信息 Patroni 4.0 需要 Python 3.8 以上(可以根据下面发布版本信息推理出) Version 3.0.2 Version 3.0.2 dropped support of Python older than 3.6. 版本3.0.2不再支持3.6版本以下的P

DBA之路的博客 1742
上一篇: 面向对象编程,我的思想(下部)
下一篇: 人人都有追求幸福的权利.
kevin_long
博客等级 码龄20年 30粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值