java常用方法大全(java如何获取文件信息) 您所在的位置:网站首页 object方法大全 java常用方法大全(java如何获取文件信息)

java常用方法大全(java如何获取文件信息)

#java常用方法大全(java如何获取文件信息)| 来源: 网络整理| 查看: 265

本文目录java如何获取文件信息java输入输出程序代码在Java中使用键盘输入数据的几种方法JAVA作业求助String类常用方法十分感谢!写出java多线程程序设计中常用类及方法名,并分别说明它们的作用Java数组的几种常用操作方法Java的核心技术有哪些java类方法java中String 类的常用方法有哪些Java语言中Object类定义了哪11种方法java如何获取文件信息

File 类是对文件和文件夹的抽象,包含了对文件和文件夹的多种属性和操作方法。File类的常用方法如下表:返回方法说明String getName 获取文件名称 String getParent 获取文件的父路径字符串 String getPath 获取文件的相对路径字符串 String getAbsolutePath 获取文件的绝对路径字符串 boolean exists 判断文件或者文件夹是否存在 boolean isFile 判断是不是文件类型 boolean isDirectory 判断是不是文件夹类型 boolean delete 删除文件或文件夹,如果删除成功返回结果为true boolean mkdir 创建文件夹,创建成功返回true boolean setReadOnly 设置文件或文件夹的只读属性 long length 获取文件的长度 long lastModified 获取文件的最后修改时间 String list 获取文件夹中的文件和子文件夹的名称,并存放到字符串数组中

java输入输出程序代码

概述

java程序输入需要用到Scanner工具类,输出则使用println

解析

1、输入:

从键盘输入需要用到java的Scanner这个util包下的工具类

Scanner中输入是需要对输入的字符进行分类,int类型为nextint()方法,double类型为nextDouble()方法,字符串类型为next()方法。

#code:

#out:

2、输出:

java常用的输出为println

#code:

#out:

除了println()方法之外,java还有print()和printf()两种输出方法,

print、println、printf的区别:

print--是函数,可以返回一个值,只能有一个参数。

println 将它的参数显示在命令窗口,并在结尾加上换行符,将输出光标定位在下一行的开始。

printf--函数,把文字格式化以后输出,直接调用系统调用进行IO的,他是非缓冲的。

拓展内容

java 输入输出流(I/O)

Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列。Java的I/O流提供了读写数据的标准方法。任何Java中表示数据源的对象都会提供以数据流的方式读写它的数据的方法。  

Java.io是大多数面向数据流的输入/输出类的主要软件包。此外,Java也对块传输提供支持,在核心库 java.nio中采用的便是块IO。

流IO的好处是简单易用,缺点是效率较低。块IO效率很高,但编程比较复杂。 

Java IO模型  :Java的IO模型设计非常优秀,它使用Decorator模式,按功能划分Stream,您可以动态装配这些Stream,以便获得您需要的功能。例如,您需要一个具有缓冲的文件输入流,则应当组合使用FileInputStream和BufferedInputStream。 

输入流(Input  Stream):

程序从输入流读取数据源。数据源包括外界(键盘、文件、网络?),即是将数据源读入到程序的通信通道。

输出流(output Stream):

程序向输出流写入数据。将程序中的数据输出到外界(显示器、打印机、文件、网络?)的通信通道。

在Java中使用键盘输入数据的几种方法

在Java中不像C语言中那么方便直接使用scanf(),下面是我积累的一些方法:1.控制台输入数据 1.1 主方法的形式参数 1.2 利用字节输入流 1.3 利用字符输入流 1.4 利用文本扫描类2. 对话框输入数据下面将针对这几种方法分别利用例子进行说明:1. 控制台输入数据 1.1 主方法的形式参数 在Java中利用main(String args)中的args数组来对参数进行赋值,有下例: package InputTest;public class DataKeyboardInput1 { /**主方法的形式参数来输入数据 * DataKeyboardInput1.java * @param args */ public static void main(String args) { // TODO Auto-generated method stub System.out.println(args); }}在命令行下输入javac DataKeyboardInput1.java --》Java DataKeyboardInput1 HelloWorld 输出就是 HelloWorld 了 1.2 利用字节输入流 字节输入流System.in 是类InputStream的常量对象,调用read()方法可以从键盘接收数据。实现的步骤是:先把数据读入字节数组中,然后利用字节数组定义字符串,最后把字符串转化为需要的数据类型。 package InputTest;import java.io.*;public class DataKeyboardInput2 { /**利用字节输入流来输入数据 * DataKeyboardInput2.java * @param args */ public static void main(String args) { // TODO Auto-generated method stub byte buf; //字节数组,输入为10个 String str; int num = 0; try{ //把数据读入到字节数组中 System.in.read(buf); //利用字节数组创建字符串 str=new String(buf,0); //把字符串数据转换为整型数据 num=Integer.parseInt(str.trim()); }catch(Exception e){ System.out.print(e); }System.out.println(num); }}1.3 利用字符输入流 字符输入流BufferedReader是从字符输入流中读取文本,缓冲各个字符,从而提供字符,数组和行的高效读取。常用方法: read(): 读取单个字符; readLine():读取一行字符,即为读取一个字符串 package InputTest;

import java.io.*; public class DataKeyboardInput3 {

/**利用字符输入流来进行输入处理 * @param args */ public static void main(String args) throws IOException { // TODO Auto-generated method stub BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); String str=““; int num = 0; try{ str=br.readLine(); num=Integer.parseInt(str); }catch(IOException e){ System.out.println(e.toString()); }System.out.println(num); } }1.4 利用文本扫描类 文本扫描类Scanner是jdk5.0新增加的类,它是一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器,它使用分隔符模式将其输入分解为标记默认情况下该分隔符模式与空白匹配,然后使用不同的next方法将得到的标记转换为不同类型值。获取基本类型数据的方法是: 整型:nextInt() 单精度:nextFloat() 双精度: nextDouble() 字符串: next()

package InputTest;import java.util.Scanner;public class DataKeyboardInput4 { /**利用文本扫描类来进行输入处理 * @param args */ public static void main(String args) { // TODO Auto-generated method stub Scanner input=new Scanner(System.in); int num=input.nextInt(); System.out.println(num); }}

2. 对话框输入数据 使用JOptionPane创建输入对话框,实现键盘输入 showConfirmDialog(): 询问一个确认问题,如yes/no/cancer showInputDialog(): 提示要求某些输入 showMessageDialog(): 告知用户某事已经发生 其中,输入对话框的常用参数形式有: showInputDialog(Object message) : message 表提示信息 showInputDialog(Object message,Object initialSelectionValue): 如果没有输入数据,则默认初始值为initalSlectionValue

package InputTest;import javax.swing.JOptionPane;public class DataInputDialog { /**对话框输入数据 * @param args */ public static void main(String args) { // TODO Auto-generated method stub String str; str=JOptionPane.showInputDialog(“input data:“); int num=Integer.parseInt(str); System.out.println(num); }}

JAVA作业求助String类常用方法十分感谢!

您可以使用以下代码来完成上面的问题:Copy codepublic class Test3 { public static void main(String args) {String s = “I am a teacher“; // 使用 s 直接调用 String 类的相关方法完成处理// 输出字符总个数System.out.println(“字符总数是: “ + s.length()); // 输出字符串的第6个字符System.out.println(“第6个字符是: “ + s.charAt(5)); // 判断 s 是不是以字符 I 开始System.out.println(“是否以 I 开始: “ + s.startsWith(“I“)); // 输出字符串的第二个单词System.out.println(“第二个单词是: “ + s.split(“ “)); // 输出第一个 a 的的位置System.out.println(“第一个 a 的的位置是: “ + s.indexOf(’a’)); // 输出最后一个 e 的位置System.out.println(“最后一个 e 的位置是: “ + s.lastIndexOf(’e’)); // 将里面的 a 都替换成 oSystem.out.println(“替换以后的结果是: “ + s.replace(’a’, ’o’)); // 输出最后一个字符

写出java多线程程序设计中常用类及方法名,并分别说明它们的作用

Thread类System.Threading.Thread类是创建并控制线程,设置其优先级并获取其状态最为常用的类Mutex类当两个或更多线程需要同访问一个共享资源时,系统需要使用同步机制来确保一次只有一个线程使用该资源。Mutex是同步基元,它只向一个线程授予对共享资源的独占访问权。ReaderWriterLock类ReaderWriterLock类定义支持单个写线程和多个读线程锁,用于同步对资源的访问。在任一特定时刻,它允许多个线程同时进行读访问,或者允许单个线程进行写访问。在资源不经常发生更改情况下,ReaderWriterLock类所提供的吞吐量比简单的一次只允许一个线程的锁更高。ThreadPool类 如果有多个任务需要完成,每个任务需要一个线程,这时应该考虑使用线程池来更有效地管理计算机资源并且从中受益。线程池是执行的多个线程集合,它允许系统添加以线程自动创建和开始的任务到队列中,使用线程池使得系统可以优化线程在CPU使用时的时间碎片。但是要记住在任何特定的时间点,每一个进程一每个线程池只有一个个正在运行的线程。使用ThreadPool类可以使得由线程组成的池可以被系统管理,而使开发人员主要精力集中在工作流的逻辑,而不是线程管理上。WaitHandle类 WaitHandle类封装等待共享资源的独占访问权的操作系统特定的对象,通常用做同步对象的基类。从该类派生的类定义一个信号传输机制以指示获取或释放对共享资源的独占访问,但使用继承的WaitHandle方法在等待对共享资源的访问时阻塞。使用此类的静态方法阻塞刈割线程,直到一个或多个同步对象接收到信息。 AutoResetEent类 AutoResetEvent类通知正在等待的线程已发生事件,无法继承此类。AutoResetEvent类允许线程通过发信号互相通信,通常此通信涉及线程需要独占访问的资源。 AutoResetEvent类将始终保持终止,直到一个正在等待的线程被释放,此时系统将自动把状态设置为非终止状态。如果没有任何线程丰等待,则状态将保持为终止状态。

Java数组的几种常用操作方法

int num = {5,4,3,2,1};for(int i = 0; i 《 num.length - 1; i++) {for (int j = i + 1; j 《 num.length; j++) {if (num) {int tmp = num;num;num = tmp;}}System.out.print(“排序后:“ + num);}

Java的核心技术有哪些

第一:Java虚拟机    Java虚拟机的主要任务是装在class文件并且执行其中的字节码。Java虚拟机包含一个类装载器,它可以从程序和API中装载class文件。Java API中只有程序执行时需要的那些类才会被装载。字节码由执行引擎来执行。不同的Java虚拟机中,执行引擎可能实现得非常不同。在由软件实现的虚拟机中,最简单的执行引擎就是一次性解释字节码。另一种执行引擎更快,但是也更消耗内存,叫做“即时编译器(just-in-time compiler)“。在这种情况下,第一次被执行的字节码会被编译成本地机器代码。编译出的本地机器代码会被缓存,当方法以后被调用的时候可以重用。第三种执行引擎是自适应优化器。在这种方法里,虚拟机开始的时候解释字节码,但是会监视运行中程序的活动,并且记录下使用最频繁的代码段。程序运行的时候,虚拟机只把那些活动最频繁的代码编译成本地代码,其他的代码由于使用得不是很频繁,继续保留为字节码-由虚拟机继续解释它们。一个自适应的优化器可以使得Java虚拟机在80%~90%的时间里执行被优化过的本地代码,而只需要编译10%~20%的对性能有影响的代码。    当Java虚拟机是由主机操作系统上的软件实现的时候,Java程序通过调用本地方法(native method)和主机交互。Java中有两种方法: Java方法和本地方法。Java方法是由Java语言编写,编译成字节码文件,存储在class文件中的。本地方法是由其他语言(比如c,c++或汇编语言)编写的,编译成何处理器相关的机器代码。本地方法保存在动态链接库中,格式是各个平台专有的。运行中Java程序调用本地方法时,虚拟机装载包含这个本地方法的动态库,并调用这个方法。本地方法是联系Java程序和底层主机操作系统的连接方法。

第二:类装载器的体系结构    一个Java应用程序可以使用两种类装载器:“启动(bootstrap)“类装载器和用户定义的类装载器。启动类装载器(这是系统中唯一的)是Java虚拟机实现的一部分。启动类装载器通常使用某种默认方式从本地磁盘中装载类,包括Java API类(启动类装载器也被称为原始类装载器、系统类装载器或者默认类装载器)。    Java应用程序能够在运行时安装用户定义的类装载器,这种类装载器能够使用自定义的方式来装载类。例如,从网络下载class文件。尽管启动类装载器是虚拟机实现的本质部分,而用户定义的类装载器不是,但用户定义的类装载器能够用Java来编写,能够被编译成class文件,能够被虚拟机装载,还能够像其它对象一样实例化。    由于有用户定义类装载器,所以不必再编译的时候就知道运行中的Java应用程序中最终会加入的所有的类。用户定义的类装载器使得在运行扩展Java应用程序成为可能。当它运行时,应用程序能够解决它需要哪些额外的类,能够决定是使用一个或是更多的用户定义的类装载器来装载。由于类装载器是用Java编写的,所以用任何在Java代码中可以表述的风格来进行类装载。这些类可以通过网络下载,可以从某些数据库中获取,甚至可以动态生成。    每一个类被装载的时候,Java虚拟机都监视这个类,看到它到底是被启动类装载器还是被用户定义类装载器装载。当被装载的类引用了另外一个类时,虚拟机就会使用装载第一个类的类装载器装载引用的类。例如,如果虚拟机使用一个特定的类装载器装载Volcano这个类,它就会使用这个类装载器装载Volcano类使用的所有类。    由于Java虚拟机采取这种方式进行类的装载,所以被装载的类默认情况下只能看到被同一个类装载器装载的别的类。通过这种方法,Java的体系结构允许在一个Java应用程序中建立多个命名空间。运行时的Java程序中的每一个类装载器都有自己的命名空间。    Java应用程序可以创建多少个(或多少种)被不同的类装载器装载的类存放在不同的命名空间中,它们不能相互访问,除非应用程序显示地允许这么做。当编写一个Java应用程序的时候,从不同源文件装载的类可以分隔在不同的命名空间中。通过这种方法,就能够使用Java类装载器的体系结构来控制任何不同源文件中装载的代码之间的相互影响,特别是能够阻止恶意代码获取访问或破坏善意代码的权限。    Web浏览器是一个动态扩展的例子,Web浏览器使用用户定义的类装载器从网络下载用于Java applet的class文件。Web浏览器使用一个用来安装用户定义类装载器的Java应用程序。这个用户定义的类装载器通常被称为Java Applet类装载器,它知道如何向HTTP服务器请求class文件。Java Applet可以作为动态扩展的例子,因为Java应用程序并不知道它什么时候会开始从网络下载浏览器请求的class文件。只有当浏览器遇到有Java applet的页面时,才决定是否需要下载class文件。    Web浏览器启动的Java应用程序通常为每个提供class文件的网络地址分别创建不同的用户定义类装载器,因此,不同的用户定义类装载器装载不同来源的class文件。这就可以把它们分别放置在Java主机应用程序的不同命名空间之下。由于不同来源的Java applet文件放置在不同的命名空间中,恶意的Java applet代码就不会直接访问从别的地方下载的class文件。这就能够限制或阻止不同来源的代码之间的相互访问。

第三:Java class文件    Java class文件主要在平台无关性和网络移动性方面使Java更适合网络。它在平台无关性方面的任务是:为Java程序提供独立于底层主机平台的二进制形式的服务。这种途径途径打破了C或者C++等语言所遵循的传统,使用这些传统语言写的程序通常首先被编译,然后被连接成单独的、专门支持特定硬件平台和操作系统的二进制文件。通常情况下,一个平台上的二进制可执行文件不能在其他平台上工作。而Java class文件时可以运行在任何支持Java虚拟机的硬件平台和操作系统上的二进制文件。    当编译和连接一个C++程序时,所获得的可执行二进制文件只能在指定的硬件平台和操作系统上运行,因为这个二进制文件包含了对目标处理器的机器语言。而Java编译器把Java源文件的指令翻译成字节码,这种字节码就是Java虚拟机的“机器语言“。class文件设计得紧凑,因此它们可以快速地在网络上传送。其次,由于Java程序是动态连接和动态扩展的,class文件可以在需要的时候才下载。这个特点使得Java应用程序能够安排从网络上下载class文件的时间,从而可以最大限度地减少终端用户的等待时间。

第四:Java API    Java API通过支持平台无关性和安全性,使得Java适应于网络应用。Java API是运行库的集合,它提供了一套访问主机系统资源的标准方法。运行Java程序时,虚拟机装载程序的class文件所使用的Java API class文件。所有被装载的class文件(包括从应用程序中和从Java API中提取的)和所有已经装载的动态库(包含本地方法)共同组成了再Java虚拟机上运行的整个程序。    在一个平台能偶支持Java程序以前,必须在这个特定平台上明确地实现API的功能。为访问主机上的本地资源,Java API调用了本地方法。由于Java API class文件调用了本地方法,Java程序就不需要再调用它们了。通过这种方法,Java API class文件为底层主机提供了具有平台无关性、标准接口的Java程序。对Java程序而言,无论平台内部如何,Java API都会有同样的表现和可预测的行为。正是由于在每个特定的主机平台上明确地实现了Java虚拟机和Java API,因此,Java程序自身就能够成为具有平台无关性的程序。    Java API在Java安全性模型方面也有贡献。当Java API的方法进行任何有潜在危险的操作(比如进行本地磁盘写操作)之前,都会通过查询访问控制器来检验是否得到了授权。访问控制器是一个类,该类用来执行栈检验,已决定是否允许某种操作。

java类方法

emm...问题...不少。

1、这个构造函数问题就很大:

你传递一个r数组进来,然后你又让this.v1=v1,this.v2=v2,那么这个r的意义到底是什么?你构造出来的这个向量的v1和v2也还是根本没有任何值。

2、这。。这块问题太多了,我都不知道该怎么说,就全都不应该这么玩,下面加法也是一样的我就不圈出来了。

首先,非常不建议用null来声明任何变量,你声明r;这样即使它是一个空的数组但最起码它已经是个对象了,不再是null了。

3、main方法中null又双叒来了:

null数组不能放任何东西进去,不然将导致空指针异常。

所以现在怎么办?我估计你也发现了,因为你不知道这个数组究竟有多少个数字所以无法准确地定义这个r的长度。

本来我认为最优的做法是利用java的几种数据结构来保存输入项就好了,但是我怕你还没学到,其中这几个数据结构都不需要指定长度就能保存数据,他们能保存的最大数据量为int的最大值:java.util.List(java的集合,特别好用)、java.util.Vector(没错,java本来就有向量这种数据结构,比你这个MyVector功能要多一些)、java.util.Stack(栈其实是继承了向量,是一种特殊的向量)、java.util.Queue(java的队列),常用的就这些。

另外一种方法就是指定r但是这种是非常不好的办法,一个是如果你最终只存储两三个数字,那么数组空间就浪费太多了,另外是如果超过了999个数字,又会导致数组溢出。

所有我下面采用了第三种直截了当的方法帮你改进为,一开始你要输入向量的长度,你要说明向量到底有多长,这样不就能准确地定义r数组了吗?look:

这样就稳得一批了。

4、再看你main方法的最后:

你这种设计方法根本没有体现出两个向量之间的运算关系啊,根本就是只有一个向量在这里。因此,你的运算函数应该修改为传入一个新的向量,也就是这样:

这样的话,main函数里就可以这样了:

看到没,是不是一眼就能看出是向量1和向量2相加、点积?

5、审题!审题!你的toString()方法呐?结果保留两位小数呐?see:

另外题目里还说要定义一个int n的成员变量表示维度。我没太明白这个维度是啥?这不就是一维向量吗?维度不就是1吗?

综上所述,代码被我整体修改为:

public class MyVector {private double array;private int n = 1;public MyVector(double array) {this.array = array;}public double getArray() {return this.array;}public double MyVectorDott(MyVector myVector2) {double array2 = myVector2.getArray();double;for (int i = 0; i 《 this.array.length; i++) {result;}return result;}public double MyVectorAdd(MyVector myVector2) {double array2 = myVector2.getArray();double;for (int i = 0; i 《 this.array.length; i++) {result;}return result;}public String toString() {String s = “(“;for (int i = 0; i 《 this.array.length; i++) {if (i 《 this.array.length - 1) {s += String.format(“%.2f“, this.array) + “,“;} else {s += String.format(“%.2f“, this.array);}}return s + “)“;}public static void main(String args) {System.out.print(“请输入向量长度:“);Scanner input = new Scanner(System.in);int length = input.nextInt();double;double;System.out.print(“请输入第一组向量值:“);input = new Scanner(System.in);for (int i = 0; i 《 length; i++) {array1 = input.nextDouble();}System.out.print(“请输入第二组向量值:“);input = new Scanner(System.in);for (int i = 0; i 《 length; i++) {array2 = input.nextDouble();}input.close();MyVector myVector1 = new MyVector(array1);System.out.println(“向量1为:“);System.out.println(myVector1.toString());System.out.println(“向量2为:“);MyVector myVector2 = new MyVector(array2);System.out.println(myVector2.toString());MyVector myVector3 = new MyVector(myVector1.MyVectorAdd(myVector2));System.out.println(“向量1与向量2求和为:“);System.out.println(myVector3.toString());System.out.println(“向量1与向量2点积为:“);MyVector myVector4 = new MyVector(myVector1.MyVectorDott(myVector2));System.out.println(myVector4.toString());}}

运行结果:

代码老是会挤在一起,你自己整理一下

java中String 类的常用方法有哪些

友情提示:

1. 字符串 str 中字符的索引从0开始,范围为 0 到 str.length()-1

2. 使用 indexOf 进行字符或字符串查找时,如果匹配返回位置索引;如果没有匹配结果,返回 -1

3. 使用 substring(beginIndex , endIndex) 进行字符串截取时,包括 beginIndex 位置的字符,不包括 endIndex 位置的字符

Java语言中Object类定义了哪11种方法

Java中所有类(包括用户自己定义的类)都自动继承Object类,即Object类是所有类的父类。

Object中常用方法:

public boolean equals(Object obj)

比较当前对象与obj是否为同一对象,返回值:ture/false

public String toString()

返回当前对象的字符串表达形式

public native int hashCode();

返回对象的Hash码。Hash码是标志对象的唯一值,Hash码相同的对象是同一对象

protected void finalize()throws Throwable

对象销毁时被调用

以下三个函数用于控制线程

public final native void notify();public final native void notifyAll();public final native void wait();

native型方法指由C++语言编写的方法,Java解释器对其进行转义后才执行。

“==”与equals()

“==“ 一般用于基本数据类型比较。若用作两个引用对象比较,仅当引用变量引用同一个对象时,才返回true,否则false。

void EqualCompare(){String s1 = new String(“Hello“);String s2 = new String(“Hello“);String s3 = “Hello“;String s4 = “Hello“;

//未使用new,s4引用既存的对象(编译器创建对象之前先进行检测“Hello“是否已经存在,若存在,则返回原对象的引用)System.out.println(s1.equals(s2)); // true x1行System.out.println(s1 ==s2); // false 两变量引用不同对象System.out.println(s3.equals(s4)); //true 两变量引用相同对象System.out.println(s3 ==s4); // true 两变量引用相同对象}

比较对象时,一般用equal()方法。

Object类方法定义:public boolean equals(Object obj){ return (this == obj);}

不同的类可方便的对该对象进行覆盖。String类就覆盖了Object类的equals()方法,所以x1行输出true.

a==b 如果a,b引用同一对象,则返回true;

a.equals(b) 如果a对象内容和b对象内容相同,则返回true

如果未重载equals()方法的类对象使用该方法与另一个对象进行比较,则调用Object的equals()方法,仍然是对象的比较,返回值为false。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有