aspose file tools*
The moose likes Java in General and the fly likes Java program that changes a file's extension Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Spring in Action this week in the Spring forum!
JavaRanch » Java Forums » Java » Java in General
Bookmark "Java program that changes a file Watch "Java program that changes a file New topic
Author

Java program that changes a file's extension

Sridhar Venkataraman
Ranch Hand

Joined: May 22, 2006
Posts: 76
I want to write a java program that when executed can take a file or a certain format (say .txt) and give as output the same file, but with the extension changed (say .xml).

How do I go about accomplishing this? Thank you.
Ulf Dittmer
Marshal

Joined: Mar 22, 2005
Posts: 42289
    
  64
The name of a file -including its extension- can be changed by the java.io.File.renameTo method.

Your example is strange, though - an .xml extension implies that the file is valid XML, which wouldn't be the case for just any old .txt file. (Changing the file extension does not change the file type or file contents.)


Ping & DNS - my free Android networking tools app
Sridhar Venkataraman
Ranch Hand

Joined: May 22, 2006
Posts: 76
My example was hypothetical. I actually have the extension .mm (a FreeMind mindmap file), which is valid XML all the time. So I just want to change the file extension for another program to read and parse the XML contained in the file.

Thanks!
Bob Ruth
Ranch Hand

Joined: Jun 04, 2007
Posts: 320
split() can be your friend.


------------------------
Bob
SCJP - 86% - June 11, 2009
Sridhar Venkataraman
Ranch Hand

Joined: May 22, 2006
Posts: 76
I will attempt to implement it and get back if I have any problems. Thank you.
K Sathya Narayanan
Greenhorn

Joined: Feb 15, 2007
Posts: 28


The above program changes the extension of *.txt to *.xml. if ext file is not found , then it creates a file in that name and renames its extension to xml. files with other extension are not renamed or created.
Rob Spoor
Sheriff

Joined: Oct 27, 2005
Posts: 19722
    
  20


That code is error prone.

First of all, what if there is no extension? indexOf will return -1, which will cause an IndexOutOfBoundsException. Secondly, what if there are multiple dots in the full filename? lastIndexOf will solve that.

And what if the filename contains the extension twice?

Your code, slightly modified:

[ May 28, 2008: Message edited by: Rob Prime ]

SCJP 1.4 - SCJP 6 - SCWCD 5 - OCEEJBD 6
How To Ask Questions How To Answer Questions
Anthony Mag
Greenhorn

Joined: Nov 27, 2008
Posts: 14
import java.io.File;
import java.util.StringTokenizer;

/*Change the extension name of the file recursively
for multiple directories
*/
public class renFile {
static String reName ="";
static StringTokenizer str =null;
static File files[] =null;
static final String ext = ".doc";//Extension to Change to
public void Innundo(String path){
String t;
try {
File file = new File(path);
files = file.listFiles();
for(File fl : files){
if(fl.isDirectory()){
System.out.println("Directory name:"+fl.toString());
Innundo(fl.toString());

}else {
System.out.println("File name:"+fl.toString());
if(fl.isFile()){
t = fl.getName();
str = new StringTokenizer(t,".");
if(str.hasMoreTokens()){
t= str.nextToken();
t= fl.getParent()+"\\"+t+ext;
System.out.println("Changed Name "+t);
fl.renameTo(new File(t));
}
}
else {System.out.println(fl.getName()+" Not A File! ");}
}
}
}catch(Exception e){
e.printStackTrace();

}
}
public static void main(String[] args) {
String path="C:/Path_To_Directory";
renFile re = new renFile();
re.Innundo(path);
}
}
//Internet Resources
Campbell Ritchie
Sheriff

Joined: Oct 13, 2005
Posts: 39436
    
  28
Anthony Gomes, don't forget the "Code" button, otherwise your code becomes illegible. Please go back and use the edit button to add code tags.
 
Don't get me started about those stupid light bulbs.
 
subject: Java program that changes a file's extension