JAVA实现文件转移

JAVA实现文件转移,第1张

Java代码

/**

* // 从旧文件拷贝内容到新文件

* // 删除旧文件

* @param oldPath the path+name of old file

* @param newPath the path+name of new file

* @throws Exception

*/

 信桥 private void transferFile(String oldPath String newPath) throws Exception {

int byteread =

File oldFile = new File(oldPath)

FileInputStream fin = null

FileOutputStream fout = null

try{

if(oldFile exists()){

fin = new FileInputStream(oldFile)

fout = new FileOutputStream(newPath)

byte[] buffer = new byte[ ]

while( (byteread = fin read(buffer)) != ){

logger debug( byteread== +byteread)

fout write(buffer byteread)

}

if(fin != null){

fin close()//如果流不关闭 则删除不雹丛了旧文件

this delFile(oldFile)

}

}else{

throw new Exception( 需要转移的文件不存在! )

}

}catch(Exception e){

e printStackTrace()

throw e

}finally{

if(fin != null){

fin close()

}

}

}

/**

* 删除文件 只支持删除文件 不支持删除目录

* @param file

* @throws Exception

*/

private void delFile(File file) throws Exception {

if(!file exists()) {

throw new Exception( 文件 +file getName()+ 不存在 请确认! )

}

if(file isFile()){

if(file canWrite()){

file delete()

}else{

throw new Exception( 文件 +file getName()+ 只读 无法删除 请手动删除! )

}

}else{

throw new Exception( 文件 +file getName()+ 不是一个标准的文件 有可能为源坦樱目录 请确认! )

}

lishixinzhi/Article/program/Java/hx/201311/25584

需要反编译才可以,如:反编译工具jad用法

以下假设jad.exe在c:\java目录下

一、基本用法

Usage:jad [option(s)]

直接输入类文件名,且支持通配符,如下所示。

c:\java\>jad example1.class

c:\java\>jad *.class

结毕乱果是将example1.class反编译为example1.jad。将example1.jad改为example1.java即得源文件。

二、Option -o

不提示,覆盖源文件

三、Option -s

c:\java\>jad -sjava example1.class

反编译结果以.java为扩展名

四、Option -p

将反编译结果输出到屏幕

c:\java\>jad -p example1.class

将反手罩档编译结果重定向到文件

c:\java\>jad -p example1.class>example1.java

五、Option -d

指定反编译的输闷州出文件目录

c:\java\>jad -o -dtest -sjava *.class

import java.awt.FlowLayout

import java.awt.event.ActionEvent

import java.awt.event.ActionListener

import java.io.File

import java.io.FileInputStream

import java.io.FileOutputStream

import java.util.Calendar

import javax.swing.JButton

import javax.swing.JFileChooser

import javax.swing.JFrame

import javax.swing.JLabel

import javax.swing.JTextField

public class BakTo extends JFrame implements ActionListener {

JLabel l1 = new JLabel("原始文件")

JTextField t1 = new JTextField(40)

JButton b1 = new JButton("选择")

JLabel l2 = new JLabel("保铅慎存目录")

JTextField t2 = new JTextField(40)

JButton b2 = new JButton("保存")

JFileChooser j1 = new JFileChooser()

JFileChooser j2 = new JFileChooser()

static File fileFlag = new File("")

public BakTo() {

setBounds(200, 200, 600, 140)

setLayout(new FlowLayout())

add(l1)

add(t1)

add(b1)

add(l2)

add(t2)

add(b2)

b1.addActionListener(this)

b2.addActionListener(this)

setResizable(false)

setVisible(true)

validate()

}

public void actionPerformed(ActionEvent e) {

try {

if (e.getSource() == b1) {

int n = j1.showOpenDialog(null)

String filename = j1.getSelectedFile().toString()

if (n == JFileChooser.APPROVE_OPTION) {

t1.setText(filename)

fileFlag = new File(filename)

}

}

else if (e.getSource() == b2) {

j2.setCurrentDirectory(fileFlag)// 设置打开对话框的默咐御认路槐简敬径

j2.setSelectedFile(fileFlag)// 设置选中原来的文件

int n = j2.showSaveDialog(null)

String filename2 = j2.getSelectedFile().toString()

if(filename2.indexOf(".")!=-1){

filename2=filename2.substring(0,filename2.indexOf("."))

}

// 以下两句是获得原文件的扩展名

int flag = t1.getText().lastIndexOf(".")

String kuozhan = t1.getText().substring(flag)

String date = getDate()// 取得当前日期

if (n == JFileChooser.APPROVE_OPTION) {

t2.setText(filename2 +date+ kuozhan)// 把日期和扩展名添加到原来文件的后面

}

int b

char[] t = new char[25]

// 这里我改用了文件流

FileInputStream input = new FileInputStream(t1.getText())

FileOutputStream output = new FileOutputStream(filename2+date

+ kuozhan)// 把扩展名添加到原来文件的后面

int in = input.read()

while (in != -1) {

output.write(in)

in = input.read()

}

input.close()

output.close()

}

} catch (Exception x) {

System.out.println(x)

}

}

public String getDate() {

Calendar rightNow = Calendar.getInstance()

System.out.println(rightNow.toString())

int year = rightNow.YEAR

int date = rightNow.DATE

int month = rightNow.MONTH + 1

String d = year + "年" + month + "月" + date + "日"

return d

}

public static void main(String args[]) {

BakTo c1 = new BakTo()

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/tougao/12326766.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-22
下一篇2023-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存