RenameTo() method in File.class
I want to know in which platforms the renameTo() method in the File class actually move the file to the detination directory. I have checked with Windows. It does move the file to the targetted directory. What about other platforms??
YoungWinston wrote:
supratim wrote:
My concern is if I am sure that that the renameTo() succeeds in doing its thing[By doing a simple renameTo() on a file and check if it is getting moved],
can it supply me any perfomrmance boost compared to normal stream based copying and then deleting the file.I think you'll have to describe what you're trying to do, and what you think your alternatives are, a bit better.
You never know, somebody may have a '3rd way' which is superior to either.
WinstonMost certainly there may be a lot more ways. All I want to know does the renameTo() method works more faster than the normal stram based copying[which includes creating InputStream and OutputStream] which looks ugly[catching FileNotFoundException,IOException etc]. Well don't take the "ugly" word otherwise, this just waht I think.
I have learned that if FileChannel s are used it, it can boost up the copying speed compared to the stream based copying. But channels are normally used where a bigger size of file needs to be transferred. Should I use channels for faster io.
I am so concerned about the speed because it is preciously what I need to do in my current work. I have to do a lot of io[file moving,copying etc] and my files are also not very big[max 3MB,min 3KB], and I want to know the best way to achieve this in a perfect and of course faster way.
Similar Messages
-
Problem with file.listFiles() of File class??
Hi all friends,
Iam facing with one peculiar problem,Iam using [file.listfiles()] method of File class in my program and this method of file class introduced in Java2.Now when Iam runing on Mac OS classic(8 to 9)[it is my client requirement they can't change Mac OS classic to Mac OS X] it is giving me error file.listfiles() not found in java.io package coz in Mac classic I have used MRJ2.2.6(for runtime) and MRJ SDK2.2 which is based on jdk1.1.8 and this method[listfiles()] added in java2.But now for me I can't change this method in program coz it is a big code and I have to change lot of things in my program.Can any one plz tell me can i find any (java.io) package of java2 seperately in the from of .jar or .zip so that i can keep it in my MRJCLASSES folder and from there I can import it in my program.Eagerly waiting for reply.
Regards
BikashJust use File.list(). There are minor semantical differences but they are easy to work around.
-
"Open method of Workbooks class failed" when opening Excel file via Internet Explorer
(apologies, I posted this first to the general Office 2010 forum, but then realized this was probably a better spot to post)
We have an Excel COM add-in installed on users' PCs. This add-in responds to workbook open events by opening a particular XLA file (also deployed to the PC) to make certain features available. This process works flawlessly when Excel files are
opened locally - but when a user attempts to open an Excel file from an IE link, we get the following error: "Open method of Workbooks class failed". This is happening on the line that is trying to open the XLA file. This only happens
when launching an Excel link from IE - works fine in Chrome or Firefox.
I have found several posts on this topic, but no solutions:
1. This post (https://social.msdn.microsoft.com/forums/office/en-US/73c96005-84af-4648-b103-32b677205be3/open-method-of-workbooks-class-failed)
is the closest to our problem. In this case, the "answer" was that the user may not have access to the 2nd workbook being opened. But in our case, we're opening an XLA that is on the local machine, and I've confirmed that it is not
corrupt and accessible (read & write, just in case!) to Everyone.
2. This (very old) post (http://www.pcreview.co.uk/forums/open-method-workbooks-fails-excel-hosted-ie-t965608.html)
seems similar, but is talking about opening Excel inside of IE. This is not what we're doing - the link is supposed to (and does) open Excel outside of IE. Interestingly, Excel.exe is being launched with the "-embedded" flag, even
though it isn't running in the IE window. When launching Excel by opening the file locally, Excel.exe is run with the "/dde" flag instead. Clearly the "-embedded" mode is what is causing the problem. I could change the
links on the web page to use some JavaScript to open Excel differently... unfortunately, the links are actually generated by SharePoint (the Excel files are in a SP repository), so this is not really an option.
3. This Microsoft KB article (http://support.microsoft.com/kb/268016) talks about problems opening an XLA directly from IE... but this is the case of a link pointing
directly to an XLA file, not opening a regular workbook that in turn opens an XLA, as is my case. In fact, this article specifically points out in the "More Information" section that "End users do not normally open XLAs; instead they open
an XLS that (if needed) loads one or more XLAs during startup." ==> precisely what I'm trying to do that is giving me the error!
I've replicated the situation with a very simple COM add-in (created in VS2010 using VB.Net) and a very simple XLA file (does nothing, just pops up a message in auto_open). For anyone wanting to try it out, here is the exact test case:
1. In Excel, create a simple XLA file containing only the following code, and save it in C:\TEMP\dummy.xla:
Sub Auto_Open()
MsgBox "Auto Open fired"
End Sub
2. In Visual Studio, create a new Excel 2010 Add-In. I created mine via Visual Basic, but I doubt the choice of language matters. Place the following code in ThisAddin.vb:
Public Class ThisAddIn
Private Sub ThisAddIn_Startup(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Startup
AddHandler Me.Application.WorkbookOpen, AddressOf Application_WorkbookOpen
End Sub
Private Sub ThisAddIn_Shutdown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shutdown
End Sub
Sub Application_WorkbookOpen(ByVal workbook As Excel.Workbook)
On Error GoTo ErrHandler
If (Not workbook.Name.Contains("dummy.xla")) Then
MsgBox("Workbook open")
Application.Workbooks.Open("C:\temp\dummy.xla")
Application.Workbooks("dummy.xla").RunAutoMacros(Excel.XlRunAutoMacro.xlAutoOpen)
End If
Exit Sub
ErrHandler:
MsgBox(Err.Description)
End Sub
End Class
3. Build & publish this add-in and install it on the same machine as the XLA created in step 1.
4. Create and save an empty Excel workbook (I called mine WayneTest1.xlsx) - save it locally (on your desktop), and put a copy somewhere on your web server (I put mine directly in c:\inetpub).
5. Create an HTML file with a link to that workbook, saving it to the same web server location - here is mine:
<html>
<body>
<a href="WayneTest1.xlsx">Link to Excel file</a>
</body>
</html>
6. Double click the workbook on your desktop (from step 4) - opens fine, I get the "workbook open" message, following by the "Auto Open fired" message.
7. In Internet Explorer, navigate to the HTML file specified in step 5 and click on the link - when prompted, select "Open" - I get the "workbook open" message, following by the error message "Open method of Workbooks class failed".
Here are a few things I've ruled out / tried so far:
- Unchecked all the "Protected View" settings in Excel, made no difference
- Unchecked all the "File block settings" in Excel, made no difference
- Made sure dummy.xla was open for read & write to Everyone
- Made sure the web page was in Trusted sites and set the security level to Low for those sites in IE
- Tried making the local desktop file (step 6) readonly, made no difference (i.e. launching it locally still worked fine)
- Tried using Excel 2013 - made no difference
Any ideas / suggestions?Hello Wayne,
Apologies for the delay.
I went through your post and tried to reproduce the issue. I was able to reproduce it. Based
on its complexity and as it requires more in-depth analysis, your question falls into the paid support category which requires a more in-depth level of support.
Please visit the below link to see the various paid support options that are
available to better meet your needs. http://support.microsoft.com/default.aspx?id=fh;en-us;offerprophone
Thanks,
Anush -
Problem with File obj renameTo() method
I need help, I can't get the renameTo() method of the File object to work.
I have 2 File objects, one is an existing file, and one I just performed the .delete()
method on. Now I want to rename the existing file to the name of the one I
just deleted. According the the java documentation the syntax is
FileObject.renameTo(FileObject with desired name);
This method is acting peculiar. The file is getting renamed, however
after the rename, if i run the File object method .getName()
it returns its old name before it was renamed. So the file is sitting in
my filesystem newly renamed, but its getName() method returns the
name that it held before I renamed it.
WHy is this ?
This is happening in the context of a JPanel, and I am stuffing the name
into the title, since it fails, the title after the rename is of the original "temp"
file.
Here is my code.
// tmp file is created and populated
// old file is deleted
// now rename tmp file to old file
// Rename tmp file to correct name
newTmpFile.renameTo(newFile); // Rename tmp file to file object selected from dialog
originalFileName = newTmpFile.getName(); // Now grab the name
setTitle("Editing - " + originalFileName); // Update the titleHere's the entire routine...
public void saveAsFileIO() {
// (pull up Save As Dialog) Prompt for new File Name
final JFileChooser fcSaveAs = new JFileChooser();
fcSaveAs.addChoosableFileFilter(new CDBFileFilter());
int returnVal = fcSaveAs.showSaveDialog(this);
if (returnVal == JFileChooser.APPROVE_OPTION) {
File newFile = fcSaveAs.getSelectedFile(); // Grab file from dialog
String strNewTmpPath = newFile.getParent() + "\\save.tmp"; // Use its path but add a different filename
File newTmpFile = new File(strNewTmpPath); // Create a new tmp file from this new path and name
int x, y;
try {
FileWriter cdbWriter = new FileWriter(newTmpFile);
BufferedWriter br = new BufferedWriter(cdbWriter);
for (x = 0; x < cellList.listModel.getSize(); x++) {
// FOR EACH Item in JList
String[] arCells = (String[]) cellArrayList.get(x); // Grab array of values
for (y = 0; y < arCells.length; y++) {
// Create string for this JList item
if (line == "") {
line = arCells[y] + ",";
} else {
line += arCells[y] + ",";
//System.out.print(line + "\n");
// Write string to tmp file
br.write(line);
br.newLine();
line = "";
br.close();
// Delete old file
if (originalFileName != "") { // When saving an exisiting file as a new one, this runs
String strOldPath = originalPath + "\\" + originalFileName;
File oldFile = new File(strOldPath);
oldFile.delete();
// Rename tmp file to correct name
newTmpFile.renameTo(newFile); // Rename tmp file to file object selected from dialog
originalFileName = newTmpFile.getName(); // Now grab the name
setTitle("CDB Editor - " + originalFileName); // Update the title
} catch (FileNotFoundException fnf) {
System.err.println("Unable to open file for writing: " + fnf.getMessage());
} catch (IOException ioe) {
System.err.println("unable to buffer write file: " + ioe.getMessage());
} -
Hi!
Why can't I compile this snip of code?
I get:
Error: (19) method listFiles() not found in class java.io.File.
Here is the code:
package stream;
import java.io.*;
import java.util.*;
public class myStream {
public static void main(String[] args) {
File myFile = new File("D:/myjava");
File[] str = myFile.listFiles();
Thanks in advance
HenningThere is no method "listFiles()" in "File" class. (JDK 1.1.8)
You can try to use " list() " method which
Returns a list of the files in the directory specified by this File object.
raghu
null -
File.renameTo method issue
I have a Java program which processes upto 10000 text files a day. The average size of these files are 1KB to 2KB and the java program parses the contents of the text file, validates and loads them into a database table.
The program outline is as follows
File[] filesToProcess = sourceFolder.listFiles();
int fileCount = filesToProcess.length;
for (int i=0;i<fileCount;i++) {
File currentFile = filesToProcess;
MsgParser fileParser = new MsgParser(currentFile);
if ( fileParser.isMessageValid()) {
boolean uploadSuccess = fileParser.uploadToDB();
if (uploadSuccess) {
if (currentFile.renameTo(parseSuccessArchiveFile))
logger.info("File successfully moved to archive folder);
else
logger.info("File cannot be moved to archive folder);
} else {
if (currentFile.renameTo(parseFailureArchiveFile)
logger.info("Parser failed file moved to archive folder);
else
logger.info("Parser failed file cannot be moved to archive folder);
The above program outline works well. However the renameTo method is not renaming the parsed files successfully on all occasions. There is no performance issue involved here as the files keep streaming in throughout the day and the program is able to handle the parsing of the file(s) in a fraction of second.
The issue for me is that I keep picking the files to parse from the source folder at regular intervals ( after a full iteration of the files list, wait for 10 seconds before calling for a new set of files ) and cannot afford to have a failure in moving the file to the archive folder as otherwise, I end up parsing the same file multiple number of times, which I want to avoid.
Can anyone shed some light on the behavior of File.renameTo and how to make it work successfully?
SundarI am making the code more readable for you all and corrected some typo errors...
File[] filesToProcess = sourceFolder.listFiles();
int fileCount = filesToProcess.length;
for (int i=0;i<fileCount;i++) {
File currentFile = filesToProcess;
MsgParser fileParser = new MsgParser(currentFile);
boolean uploadSuccess = false;
if ( fileParser.isMessageValid())
uploadSuccess = fileParser.uploadToDB();
if (uploadSuccess) {
if (currentFile.renameTo(parseSuccessArchiveFile))
logger.info("File successfully moved to archive folder);
else
logger.info("File cannot be moved to archive folder);
} else {
if (currentFile.renameTo(parseFailureArchiveFile)
logger.info("Parser failed file moved to archive folder);
else
logger.
info("Parser failed file cannot be moved to archive folder);
} -
How to find the arguments of a static method from the class file
Hi,all !
How to find the arguments of a static method from the class file? for example, when we meet a bytecode "invokestatic", how can I know the arguments of this static method?Hi,all !
How to find the arguments of a static method from the
class file? for example, when we meet a bytecode
"invokestatic", how can I know the arguments of this
static method?You mean
1. The values?
2. Argument names?
3. Argument signatures.
I would suppose for the last that the easiest way would be to parse the signature string.
The first is not possible - not from the class file.
The second is only in the debug information stored in the optional part of the class file. And figuring out the format for that is going to be a problem. -
File class and an executable method?
Unix and Windows files have attributes that indicate if they are executable. Why doesn�t Java have a �canBeExecuted� method in its File class?
This is a question in an assignment that I am doing and I don't can't really figure out why there is no methos like this.
Please help, and and all ideas would be most appreciated.I give up - where does windows have that?ntfs? what version of windows are you on! :)
right-click->properties->security ...Sorry -- I picked a file at random and did
rightclick->properties. There's no Security tab on my
Windows (2000) computer.Probably because "Use simply file sharing" is checked in
some tab (can't find it because I don't have access on this
computer). I think it is under "Tools->Folder Options->View->
Use Simple File Sharing". (under "Tools" in explorer). -
RenameTo on temporary file fails on Solaris 8
Hi!
I have problem using the renameTo method on a temporary file created using the File.createTempFile(filename, null) method call on a Solaris 8 machine. When I try to rename the temporary file, created in the /var/tmp/ directory, I get the false return value from method call.
The temporary file created has read/write permissions for user, group and all, and it works to use the mv command on the command line to rename the temporary file. But I cannot do it using the renameTo method. The /var/tmp directory has the following rights "drwxrwxrwxt".
I would really appreciate some help. I have no idea what could be the problem. Below is a test program that shows my problem.
import java.io.*;
public class Test {
public static void main(String[] argv) {
String str = "Hello World\n";
try {
if (argv.length == 1 ||
argv.length == 2) {
File saveFile = null;
File tmpFile = null;
OutputStreamWriter writer = null;
saveFile = new File(argv[0]);
System.out.println("Save file: " + saveFile.getAbsolutePath() + " created.");
if (argv.length == 2) {
tmpFile = File.createTempFile(saveFile.getName(), null, new File(argv[1]));
else {
tmpFile = File.createTempFile(saveFile.getName(), null);
System.out.println("Temporary file " + tmpFile.getAbsolutePath() + " created.");
writer = new OutputStreamWriter(new FileOutputStream(tmpFile));
writer.write(str, 0, str.length());
writer.close();
System.out.println("Sleeping for 5 seconds.");
Thread.sleep(5000);
if (tmpFile.renameTo(saveFile)) {
System.out.println("File renaming success.");
else {
System.err.println("File renaming failed.");
else {
System.out.println("Usage: java Test <filename> [directory]");
catch (Exception ex) {
System.err.println("ERROR: " + ex.getMessage());
Best regards
LarsYou're probably trying to rename the file from one partition to another. This can't be done by a simple rename because the file data has to be copied.
Try creating your temporary file in the intended destination directory.
Sylvia. -
Calling a method of one class from another withing the same package
hi,
i've some problem in calling a method of one class from another class within the same package.
for eg. if in Package mypack. i'm having 2 files, f1 and f2. i would like to call a method of f2 from f1(f1 is a servlet) . i donno exactly how to instantiate the object for f2. can anybody please help me in this regard.
Thank u in advance.
Regards,
FazliThis is what my exact problem.
i've created a bean (DataBean) to access the database. i'm having a servlet program (ShopBook). now to check some details over there in the database from the servlet i'm in need to use a method in the DataBean.
both ShopBook.java and DataBean.java lies in the package shoppack.
in ShopBook i tried to instantiate the object to DataBean as
DataBean db = new DataBean();
it shows the compiler error, unable to resolve symbol DataBean.
note:
first i compiled DataBean.java, it got compiled perfectly and the class file resides inside the shoppack.
when i'm trying to compile the ShopBook its telling this error.
hope i'm clear in explaining my problem. can u please help me?
thank u in advance.
regards,
Fazli -
Calling a servlet method from another class
hi...
if i make a servlet (that keeps the log for website users' logins and logouts, for example) and i want a method that adds an entry into a logfile, for example:
public void log(String line) {
//put "line" into some log file...
and then i set this servlet to loadonstartup, how can i call the log() function from other classes or servlets? can i do it without making the servlet an entry in servletContext?
im sorry if i'm not being very clear, the caffeine's getting to me...
thanks
lazloI don't know, why would you do that anyway? Just make an ordinary class, not a servlet, and make "log" a static method in that class. (If you need initialization, use a static initializer.) Put that class where the real servlet can see it and call it from there.
-
Can't add list element when calling a method from another class
I am trying to call a method in another class, which contains code listmodel.addElement("text"); to add an element into a list component made in that class.
I've put in System.out.println("passed"); in the method just to make sure if the method was being called properly and it displays normally.
I can change variables in the other class by calling the method with no problem. The only thing I can't do is get listmodel.addElement("text"); to add a new element in the list component by doing it this way.
I've called that method within it's class and it added the element with no problem. Does Java have limitations about what kind of code it can run from other classes? And if that's the case I'd really like to know just why.There were no errors, just the element doesnt get added to the list by doing it this way
class showpanel extends JPanel implements ActionListener, MouseMotionListener {
framepanel fp = new framepanel();
--omitted--
public void actionPerformed(ActionEvent e){
if(e.getSource() == button1){
fp.addLayer();
/*is in a different class file*/
class framepanel extends JPanel implements ActionListener{
--omitted--
public void addLayer(){
listmodel.addElement("Layer"+numLayer);
numLayer++;
} -
Problem using repaint() method from another class
I am trying to make tower of hanoi...but unable to transfer rings from a tower to another...i had made three classes....layout21 where all componentents of frame assembled and provided suitable actionlistener.....second is mainPanel which is used to draw the rods n rings in paintComponent.....and third is tower in which code for hanoi is available...i had made an object of mainPanel at layoout21 n tower but i m not able to call repaint from tower..gives an error : cannot find the symbol....method repaint in tower.
code fragments od three classes are:
LAYOUT21
class layout21 extends JFrame implements ActionListener
{ private Vector rod1 = new Vector();
private Vector rod2 = new Vector();
private Vector rod3 = new Vector();
private String elem; //comment
public String r22;
public boolean in=false;
public int count=0; //no of times the transfer to other rods performed
private int r3,rings; // current no of rings
private JComboBox nor,col;
private JLabel no;
private JLabel moved;
private JLabel no1;
private JButton start;
private JButton ref;
private AboutDialog dialog;
private JMenuItem aboutItem;
private JMenuItem exitItem;
private tower t;
final mainPanel2 p =new mainPanel2();
public layout21()
{ t = new tower();
Toolkit kit =Toolkit.getDefaultToolkit();
Image img = kit.getImage("java.gif");
setIconImage(img);
setTitle("Tower Of Hanoi");
setSize(615,615);
setResizable(false);
setBackground(Color.CYAN);
JMenuBar mbar = new JMenuBar();
setJMenuBar(mbar);
JMenu fileMenu = new JMenu("File");
mbar.add(fileMenu);
aboutItem = new JMenuItem("About");
aboutItem.addActionListener(this);
fileMenu.add(aboutItem);
exitItem = new JMenuItem("Exit");
exitItem.addActionListener(this);
fileMenu.add(exitItem);
Container contentPane =getContentPane();
JPanel bspanel = new JPanel();
JPanel bnpanel = new JPanel();
setBackground(Color.CYAN);
//JComboBox
nor = new JComboBox();
nor.setEditable(false);
nor.addItem("3");
nor.addItem("4");
nor.addItem("5");
nor.addItem("6");
nor.addItem("7");
nor.addItem("8");
nor.addItem("9");
bspanel.add(nor);
col = new JComboBox();
col.setEditable(false);
col.addItem("BLACK");
col.addItem("GREEN");
col.addItem("CYAN");
bspanel.add(col);
JLabel tl = new JLabel("Time");
tl.setFont(new Font("Serif",Font.BOLD,12));
bspanel.add(tl);
JTextField tlag = new JTextField("0",4);
bspanel.add(tlag);
start =new JButton("Start");
bspanel.add(start);
ref =new JButton("Refresh");
bspanel.add(ref);
JButton end =new JButton("End");
bspanel.add(end);
start.addActionListener(this);
nor.addActionListener(this);
col.addActionListener(this);
ref.addActionListener(this);
end.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
dispose(); // Closes the dialog
contentPane.add(bspanel,BorderLayout.SOUTH);
JLabel count = new JLabel("No of Transfer reguired:");
count.setFont(new Font("Serif",Font.BOLD,16));
bnpanel.add(count);
no = new JLabel("7");
no.setFont(new Font("Serif",Font.BOLD,16));
bnpanel.add(no);
JLabel moved = new JLabel("Moved:");
moved.setFont(new Font("Serif",Font.BOLD,16));
bnpanel.add(moved);
no1 = new JLabel("0");
no1.setFont(new Font("Serif",Font.BOLD,16));
bnpanel.add(no1);
contentPane.add(bnpanel,BorderLayout.NORTH);
contentPane.add(p,BorderLayout.CENTER);
String r = (String)nor.getSelectedItem();
rings = Integer.valueOf(r).intValue();
p.draw(rings,1) ;
public void actionPerformed(ActionEvent evt)
{ Object source = evt.getSource();
if(source == start)
r3 = Integer.valueOf((String)nor.getSelectedItem()).intValue();
p.transfer(false);
t.initialise(rod1,rod2,rod3,0);
t.towerOfHanoi(r3);
//repaint();
if(source == ref)
{ rod1.removeAllElements() ;
rod2.removeAllElements() ;
rod3.removeAllElements() ;
count=0;
r3 = Integer.valueOf((String)nor.getSelectedItem()).intValue();
p.draw(r3,1);
p.transfer(true);
no1.setText(""+0);
p.trans_vec(rod1,rod2,rod3);
t.initialise(rod1,rod2,rod3,0);
System.out.println("");
repaint();
if(source == nor)
{ JComboBox j = (JComboBox)source;
String item = (String)j.getSelectedItem();
int ring1 = Integer.valueOf(item).intValue();
int a=1;
for(int i=1;i<=ring1;i++)
{ a = a*2;
a=a-1;
no.setText(""+a);
p.draw(ring1,1);
repaint();
if(source == aboutItem)
{ if (dialog == null) // first time
dialog = new AboutDialog(this);
dialog.setVisible(true);
if(source == exitItem)
{ System.exit(0);
if (source==col)
{ JComboBox j = (JComboBox)source;
String item = (String)j.getSelectedItem();
repaint();
TOWER
class tower extends Thread
{ private Vector rod1 = new Vector();
private Vector rod2 = new Vector();
private Vector rod3 = new Vector();
private int count ;
private String elem;
final mainPanel2 z =new mainPanel2();
public void initialise(Vector r1,Vector r2,Vector r3,int c)
{ rod1 = r1;
rod2 = r2;
rod3 = r3;
count =c;
public void towerOfHanoi(int rings)
for(int i=0;i<rings;i++)
rod1.add(" "+(i+1));
System.out.println("rod1:"+rod1.toString());
hanoi(rings,1,2);
public void hanoi(int m,int i, int j)
if(m>0)
{ hanoi(m-1,i,6-i-j);
if(i==1 && j==2 && rod1.isEmpty()==false)
{ count++;
//no1.setText(""+count);
elem = (String)rod1.remove(0);
rod2.add(0,elem);
//z.trans_vec(rod1,rod2,rod3);
repaint(); //NOT ABLE TO USE METHOD HERE...WHY??
//z.hanoi_paint();
try
this.sleep(2000);
catch (Exception e) { e.printStackTrace() ; }
System.out.println(count+". ROD 2:"+rod2.toString());
if(i==1 && j==3 && rod1.isEmpty()==false)
{ count++;
//no1.setText(""+count);
elem = (String)rod1.remove(0);
rod3.add(0,elem);
//z.trans_vec(rod1,rod2,rod3);
repaint();//
// z.hanoi_paint();
try
this.sleep(2000);
catch (Exception e) { e.printStackTrace() ; }
System.out.println(count+". ROD 3:"+rod3.toString());
if(i==2 && j==1 && rod2.isEmpty()==false)
{ count++;
//no1.setText(""+count);
elem = (String)rod2.remove(0);
rod1.add(0,elem);
//z.trans_vec(rod1,rod2,rod3);
repaint();
//z.hanoi_paint();
try
this.sleep(2000);
catch (Exception e) { e.printStackTrace() ; }
System.out.println(count+". ROD 1:"+rod1.toString());
if(i==2 && j==3 && rod2.isEmpty()==false)
{ count++;
//no1.setText(""+count);
elem = (String)rod2.remove(0);
rod3.add(0,elem);
//z.trans_vec(rod1,rod2,rod3);
repaint();
//z.hanoi_paint();
try
this.sleep(2000);
catch (Exception e) { e.printStackTrace() ; }
System.out.println(count+". ROD 3:"+rod3.toString());
if(i==3 && j==1 && rod3.isEmpty()==false)
{ count++;
//no1.setText(""+count);
elem = (String)rod3.remove(0);
rod1.add(0,elem);
//z.trans_vec(rod1,rod2,rod3);
repaint();
//z.hanoi_paint();
try
this.sleep(2000);
catch (Exception e) { e.printStackTrace() ; }
System.out.println(count+". ROD 1:"+rod1.toString());
if(i==3 && j==2 && rod3.isEmpty()==false)
{ count++;
//no1.setText(""+count);
elem = (String)rod3.remove(0);
rod2.add(0,elem);
//z.trans_vec(rod1,rod2,rod3);
repaint();
//z.hanoi_paint();
try
this.sleep(2000);
catch (Exception e) { e.printStackTrace() ; }
System.out.println(count+". ROD 2:"+rod2.toString());
hanoi(m-1,6-i-j,j);
MAINPANEL
class mainPanel2 extends JPanel //throws IOException
public Vector line = new Vector();
public Vector rod11= new Vector();
public Vector rod22= new Vector();
public Vector rod33= new Vector();
public int no_ring;
public int rod_no;
String pixel;
StringTokenizer st,st1;
int x,y;
public boolean initial =true;
public void paintComponent(Graphics g)
{ System.out.println("repaint test");
bresenham(100,60,100,360);
bresenham(101,60,101,360);
bresenham(102,60,102,360);
bresenham(103,60,103,360);
bresenham(104,60,104,360);
g.setColor(Color.BLUE);
while(line.size()>0)
{ pixel = (String)line.remove(0);
st = new StringTokenizer(pixel);
x = Integer.valueOf(st.nextToken()).intValue();
y = Integer.valueOf(st.nextToken()).intValue();
g.drawLine(x,y,x,y);
bresenham(300,60,300,360);
bresenham(301,60,301,360);
bresenham(302,60,302,360);
bresenham(303,60,303,360);
bresenham(304,60,304,360);
while(line.size()>0)
{ pixel = (String)line.remove(0);
st = new StringTokenizer(pixel);
x = Integer.valueOf(st.nextToken()).intValue();
y = Integer.valueOf(st.nextToken()).intValue();
g.drawLine(x,y,x,y);
bresenham(500,60,500,360);
bresenham(501,60,501,360);
bresenham(502,60,502,360);
bresenham(503,60,503,360);
bresenham(504,60,504,360);
while(line.size()>0)
{ pixel = (String)line.remove(0);
st = new StringTokenizer(pixel);
x = Integer.valueOf(st.nextToken()).intValue();
y = Integer.valueOf(st.nextToken()).intValue();
g.drawLine(x,y,x,y);
bresenham(0,361,615,361);//used to get a pixel according to algo.. . func not provided
bresenham(0,362,615,362);
bresenham(0,363,615,363);
bresenham(0,364,615,364);
bresenham(0,365,615,365);
while(line.size()>0)
{ pixel = (String)line.remove(0);
st = new StringTokenizer(pixel);
x = Integer.valueOf(st.nextToken()).intValue();
y = Integer.valueOf(st.nextToken()).intValue();
g.drawLine(x,y,x,y);
if(initial==true)
g.setColor(Color.RED);
for(int i = no_ring;i>0;i--)
{ g.drawLine(100-(i*8),360-(no_ring - i)*10,100+(i*8)+5,360-(no_ring - i)*10);
g.drawLine(100-(i*8),359-(no_ring - i)*10,100+(i*8)+5,359-(no_ring - i)*10);
g.drawLine(100-(i*8),358-(no_ring - i)*10,100+(i*8)+5,358-(no_ring - i)*10);
g.drawLine(100-(i*8),357-(no_ring - i)*10,100+(i*8)+5,357-(no_ring - i)*10);
g.drawLine(100-(i*8),356-(no_ring - i)*10,100+(i*8)+5,356-(no_ring - i)*10);
// draw for each rod
//System.out.println("rod11:"+rod11);
//System.out.println("rod22:"+rod22);
//System.out.println("rod33:"+rod33);
int r1 = rod11.size();
int r2 = rod22.size();
int r3 = rod33.size();
String rd1,rd2,rd3;
int r11,r12,r21,r22,r31,r32;
if(initial == false)
{ g.setColor(Color.RED);
while(rod11.size()>0)
{ r12 = rod11.size()-1;
rd1 = (String)rod11.remove(r12);
r11 = Integer.valueOf(rd1).intValue();
g.drawLine(100-((r11+1)*8),360-(r1 - (r11+1))*10,100+((r11+1)*8)+5,360-(r1 - (r11+1))*10);
g.drawLine(100-((r11+1)*8),359-(r1 - (r11+1))*10,100+((r11+1)*8)+5,359-(r1 - (r11+1))*10);
g.drawLine(100-((r11+1)*8),358-(r1 - (r11+1))*10,100+((r11+1)*8)+5,358-(r1 - (r11+1))*10);
g.drawLine(100-((r11+1)*8),357-(r1 - (r11+1))*10,100+((r11+1)*8)+5,357-(r1 - (r11+1))*10);
g.drawLine(100-((r11+1)*8),356-(r1 - (r11+1))*10,100+((r11+1)*8)+5,356-(r1 - (r11+1))*10);
while(rod22.size()>0)
{ g.setColor(Color.RED);
r22 = rod22.size()-1;
System.out.println("TEST *************************:"+r22);
try
// e.printStackTrace();
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr) ;
br.readLine() ;
}catch(Exception f) {}
rd2 = ((String)rod22.remove(r22)).trim();
r21 = Integer.valueOf(rd2).intValue();
g.drawLine(300-((r22+1)*8),360-(r2 - (r22+1))*10,300+((r22+1)*8)+5,360-(r2 - (r22+1))*10);
g.drawLine(300-((r22+1)*8),359-(r2 - (r22+1))*10,300+((r22+1)*8)+5,359-(r2 - (r22+1))*10);
g.drawLine(300-((r22+1)*8),358-(r2 - (r22+1))*10,300+((r22+1)*8)+5,358-(r2 - (r22+1))*10);
g.drawLine(300-((r22+1)*8),357-(r2 - (r22+1))*10,300+((r22+1)*8)+5,357-(r2 - (r22+1))*10);
g.drawLine(300-((r22+1)*8),356-(r2 - (r22+1))*10,300+((r22+1)*8)+5,356-(r2 - (r22+1))*10);
while(rod33.size()>0)
{ g.setColor(Color.RED);
r32 = rod33.size()-1;
rd3 = (String)rod33.remove(r32);
r31 = Integer.valueOf(rd3).intValue();
g.drawLine(500-((r32+1)*8),360-(r3 - (r32+1))*10,500+((r32+1)*8)+5,360-(r3 - (r32+1))*10);
g.drawLine(500-((r32+1)*8),359-(r3 - (r32+1))*10,500+((r32+1)*8)+5,359-(r3 - (r32+1))*10);
g.drawLine(500-((r32+1)*8),358-(r3 - (r32+1))*10,500+((r32+1)*8)+5,358-(r3 - (r32+1))*10);
g.drawLine(500-((r32+1)*8),357-(r3 - (r32+1))*10,500+((r32+1)*8)+5,357-(r3 - (r32+1))*10);
g.drawLine(500-((r32+1)*8),356-(r3 - (r32+1))*10,500+((r32+1)*8)+5,356-(r3 - (r32+1))*10);
why i m not able to use repaint() method in tower class? from where i can use repaint() methodi can't read your code - not formatted with code tags
I have no chance of getting it to compile (AboutDialog class?? p.draw() ??)
here's a basic routine - add a couple of things to this to demonstrate what is not
being redrawn
(compare the readability of below code (using tags) to yours)
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class Testing extends JFrame
public Testing()
setSize(400,300);
setLocation(400,300);
setDefaultCloseOperation(EXIT_ON_CLOSE);
final DrawPanel dp = new DrawPanel();
JButton btn = new JButton("Change Text Location/Repaint");
getContentPane().add(dp,BorderLayout.CENTER);
getContentPane().add(btn,BorderLayout.SOUTH);
btn.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
dp.x = (int)(Math.random()*300);
dp.y = (int)(Math.random()*150)+50;
repaint();}});
public static void main(String[] args){new Testing().setVisible(true);}
class DrawPanel extends JPanel
int x = 50, y = 50;
public void paintComponent(Graphics g)
super.paintComponent(g);
g.drawString("Hello World",x,y);
} -
Reading html files with File class
The methods of the class File does not identify html files. for example the method list() does not return names of html files in a givven directory? does anyone know what is the way to get the html files names and use them for file proccesing?
ThanksThe Temporary Internet Files folder is a special system folder on Windows. It does not really contain any of the files you can see when you go there through Internet Explorer or Windows Explorer.
On Win2K, using IE6.0, the real files seem to be in a directory called C:\Documents and Settings\<hhor>\Local Settings\Temporary Internet Files\Content.IE5\<some apparently random name>, where <hhor> is the name of my profile, and <some apparently random name> is, well... some apparently random name :) -
Problem with the renameTO method in the Linux environment
Hi
I got a problem with the renameTO method in the Linux environment. The file is not moving.
This method is returning false. the same code executed successfully in Windows environment.
Can anyone give some fix to this one or an alternate solution to move the files in both windows and Linux.
boolean success;
File root = new File(tempPath);
File f = new File(root, phyFileName);
File dest = new File(targetPath);
success = f.renameTo(new File(dest, actualFileName));actualFileName = 400.doc
dest = /home/jboss-4.0.3/axsscm_1.0/axsscmDocuments/xchange/fileup/fshare/PO/1786JITHENDRA wrote:
Thanks for the prompt replyNo problem.
>
Can u solve the below doubt.
Will renameTo method wont work in Linux? If so why?Did you not read what I said? I suspect you are trying to rename a file so that it actually has to be moved to a different volume (partition or hard disk) so it won't work. One would have the same problem on Windows trying to rename a file on the c: drive to a name on the d: drive.
>
>
Can u give a sample or good link to do the above work which works fine in all environments.?Just follow the pseudo code I gave. 15 minutes work.
Maybe you are looking for
-
How can I delete all photographs in stream of my iPhone 4 without loosing them on my mac?
How can I delete all photographs in stream of my iPhone 4 without loosing them on my mac? Because I have too much photographs in my phone's memory and I need to know a simple methode to get them off.
-
Hey all, I'm having some problems connecting to a simple Bluetooth device. I want to create a Java application that allows a computer to connect to a generic bluetooth device (at this current point and time my cellphone). I'm having problems using th
-
Report Viewer control disabled in aspx page
Hi All, I am trying to generate a report with data pulled from one of a SharePoint list and binding it to report viewer control. The binding happens fine through code. Page is actually a layout based and deployed to one of folder in layouts and in
-
I tried to download the latest OSX for my iMac - Mountain Lion. This is the message that I received: "We could not complete your purchase. The product distribution file could not be verified. It may be damaged or was not signed." What does this mea
-
HT6065 Why has Apple not fixed Mavericks breaking AuthenTec USB Fingerprint readers?
Apple bought AuthenTec and shut it down to gain the technology for the iPhone. Later, they released Mavericks and broke the drivers that allow AuthenTec Eikon Fingerprint readers on Macs, despite having ample resources and time to do so. Do the right