导航:首页 > 编程语言 > java类拷贝

java类拷贝

发布时间:2022-07-04 09:16:08

A. java 怎样复制一个类

直接无视1楼
实现Cloneable接口,重载clone方法即可
public class A implements Cloneable {
public String name;

public Object clone() {
A o = null;
try {
o = (A) super.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return o;
}

}

B. java 如何拷贝整个目录,类似x

有两种方法可以使用:

1、我们可以使用java的File类,使用递归算法遍历文件夹及其所有层的子文件夹,这种写法非常繁琐且效率不高,不推荐使用。

2、直接使用Windows的x命令
示例代码

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main( String[] args ) throws IOException
{
/*在dos窗口:x C:\源文件 D:\源文件\/S/E*/
/*字符所需的格式:x C:\\源文件 D:\\源文件\\/S/E*/
System.out.println( "请输入源文件的地址栏路径:" );
BufferedReader br = new BufferedReader( new InputStreamReader( System.in ) );
String input = br.readLine();
/*将地址中的单斜杠变为双斜杠*/
String from = input.replaceAll( "\\\\", "\\\\\\\\" );
/*获取文件名*/
String name_file = from.substring( from.lastIndexOf( "\\" ) + 1, from.length() );
/*把目标拷贝到D盘根目录*/
String to = "D:\\" + name_file + "\\/S/E";
/*拼装命令*/
String cmd = "cmd.exe /C x " + from + " " + to;
/*执行命令*/
java.lang.Runtime.getRuntime().exec( cmd );
System.out.println( "文件拷贝完毕。" );
System.out.println( "文件已经拷贝到:D:\\" + name_file );
}
}

C. java中怎么实现实体类的拷贝

Java实现文件拷贝其实质上就是使用java提供的三种文件流操作,字节流,字符流,二进制流。
字节流:FileInputStream 与 FileOutputStream
使用示例:
void File(File oldFile, File newFile){

FileOutputStream outputStream = new FileOutputStream(newFile,true);
FileInputStream inputStream = new FileInputStream(oldFile);
byte []wxj = new byte[1024];
int length = inputStream.read(wxj);
while(length!=-1){
outputStream.write(wxj,0,length);
length = inputStream.read(wxj);
}
}
字符流:FileReader 和 FileWriter
使用示例:
void File(File oldFile, File newFile){

Writer writer = new FileWriter(newFile,true);
Reader reader = new FileReader(oldFile);
char []wxj = new char[1024];
int length = reader.read(wxj);
while(length!=-1){
writer.write(wxj,0,length);
length = reader.read(wxj);
}
}
二进制流:DataInputStream 和 DataOutputStream
使用示例:
void File(File oldFile, File newFile){

FileOutputStream outputStream = new FileOutputStream(newFile,true);
FileInputStream inputStream = new FileInputStream(oldFile);
DataInputStream dataInput = new DataInputStream(inputStream);
DataOutputStream dataOutput = new DataOutputStream(outputStream);
byte []wxj = new byte[1024];
int length = dataInput.read(wxj);
while(length!=-1){
dataOutput.write(wxj,0,length);
length = dataInput.read(wxj);
}
}
总结一下:字节流读取文件的单位为字节,对于英语字母(只占一个字节)不受任何影响,而对于中文文字在unicode编码为两个字节(或者以上?)则可能会造成影响;字符流读取文件的单位为字符,没有上述字节流的弊端,而且其提供缓冲区读取/写入,更加方便与高效;二进制流本质上也属于字节流,但是它在读取/写入文件时把文件内容转化为二进制的方式读取/写入,不易出错而且极为高效,一般用于读取/写入视频等大文件信息。

D. java如何拷贝文件到另一个目录下

下面列举出4种方式:

1、使用FileStreams复制

这是最经典的方式将一个文件的内容复制到另一个文件中。 使用FileInputStream读取文件A的字节,使用FileOutputStream写入到文件B。正如你所看到的我们执行几个读和写操作try的数据,所以这应该是一个低效率的,下一个方法我们将看到新的方式。 这是第一个方法的代码:

E. JAVA如何实现深拷贝

下面给你简单介绍protected 域(或方法)实现过程思路:

protected 域(或方法)对本包内的所有类可见(当然包括子类),那么,子类可以获得访超类受保护域(或方法)的权利,但是,若子类和超类不在同一个包下,就不能访问超类对象的这个受保护域(或方法)。

浅拷贝与深拷贝

Object类对自己的具体子类的域一无所知,Object类的clone方法只是将各个域进行拷贝。数值或基本类型不会出现问题,但是,如果在对象中包含了引用对象,这些对象的内容没有被自我复制,拷贝的结果也即是原始对象和拷贝对象引用着同一个引用对象(一般地,动词“引用”可理解为“管理”,就是指向同一内存)。

浅拷贝满足:

x.clone() != x为 true,

x.clone().getClass() == x.getClass()为true,

((x.clone().field1 ) == (x. field1))&& … &&((x.clone().fieldN )==(x. fieldN))也为 true 。

如果原始对象与浅拷贝对象共同引用(管理、指向)的引用对象是不可变的,将不会产生任何问题

如果原始对象管理的引用对象是可变的,就必须需重新定义clone方法,来实现深层次的拷贝。要对涉及的每一个类,判断以下两点:

默认的clone方法是否满足需求。

默认的clone方法是否能通过调用可变引用对象的clone方法得到解决。

对涉及的每一个类,深拷贝要满足:

x.clone() != x为 true,

x.clone().getClass() == x.getClass()为true,

x.clone().equals(x)也为 true ,当然equals方法是如此重写过的。

Object类中的clone方法被声明为protected,防止出现文章开头所提到的,子类和超类不在同一个包下的情况,要声明clone为public,来实现深拷贝

F. JAVA中对象具有类定义的所以变量的一份拷贝,这句话有什么不对

java中的类对象没有拷贝,只是一个指向原来对象空间的一个引用,如果想要新建的另外拷贝

G. JAVA 中浅拷贝与深拷贝有什么区别

浅拷贝 指的是你的类本身被拷贝,而没有拷贝类本身属性中的类
深拷贝 指的是包含类本身和属性类在内的所有类的拷贝。

简单点说:
就是浅拷贝的两个对象中的属性还会指向同一个类,而深拷贝则全部单独了。也就是说深拷贝把关联关系也拷贝了。

具体例子你可以参看我的blog,里面篇文章介绍:)

H. java中如何将一个类的成员变量复制到另一个类中

  1. 用extends继承,直接使用父类的变量,缺点:不能继承其他类

  2. 用getter,通过getter获取变量,缺点:过多setter和getter容易破坏代码的可维护性

  3. 创建类的实例,然后调用实例的值,缺点:如果长时间不用实例化的对象,会被自动回收

  4. 适用reflection反射机制,导入java.lang.reflect包,以此来调用类里面的变量,缺点:开发环境不可以有安全限制,可移植性差

  5. 用接口,把变量放到一个接口里面,然后共享数据的类实现这个接口,缺点:暂时没想到

I. java 拷贝对象工具类有哪些

其他普通类::从beanInfo【每一个对象都有一个缓存的bean信息,包含属性字段等】取出name,然后把sourceClass和targetClass逐个拷贝

J. java怎样用File类拷贝文件夹

使用 java.io.File listFiles得到列表, 判断是文件夹则创建、文件则拷贝

~~~~~~~~~~~~~~~

阅读全文

与java类拷贝相关的资料

热点内容
三台服务器配置IP地址 浏览:171
如何用命令方块连续对话 浏览:275
win7linux共享文件夹 浏览:302
命令符打开本地服务 浏览:597
android应用程序源码 浏览:699
安卓开发工程师简历怎么写 浏览:57
热水器水量服务器是什么意思 浏览:115
stk卫星编译 浏览:477
对后台程序员的要求 浏览:759
ios大文件夹图标 浏览:624
生的计划pdf 浏览:711
oppoa93加密便签在哪查找 浏览:21
两个数字的加减乘除运算编程 浏览:227
给手机加密码忘记了怎么办 浏览:601
单片机运算符 浏览:297
移动端微信商城源码 浏览:443
编程猫下一个背景在哪里 浏览:359
javaclasstype 浏览:240
乐高编程和乐高课的延伸 浏览:357
苹果手机怎么切换app美国账号 浏览:865