2015-06-03 2 views
0

Рассмотрим пример кода ниже. Класс Migrator принимает два входных файла, обрабатывает его и записывает вывод в final.tbl. Я хочу, чтобы final.tbl создавался по тому же пути, где присутствует папка входных файлов. Также метод execute должен относить относительный путь к этому сгенерированному файлу final.tbl.Как использовать относительные пути в приведенном ниже коде?

public class Migrator{ 
     public void Migrate(String path1,String path2){ 
      PrintStream out = new PrintStream("final.tbl");//I need relative path as that of input folder path i.e path1,path2 
      //..... 
      //.....Processing 
     } 
} 

class MainProcess{ 
     public execute(String path){ 
      //here the execute method should the the relative path of above final.tbl file 
     } 

     public static void main(String args[]){ 

     } 
} 

ответ

0
Path path = Paths.get(path1); 
PrintStream out = new PrintStream(path.getParent().toString() + "\\final.tbl"); 
+0

Спасибо. что означает следующий шаг для класса MainProces –

0

Я думаю, что вы можете использовать getAbsolutePath, чтобы получить путь к входным файлам:

public class Migrator{ 
     public void Migrate(String path1,String path2){ 
      File f = new File(path1); 
      String absolutePath = f.getAbsolutePath(); // use absolutePath for your PrintStream 
      PrintStream out = new PrintStream(absolutePath);//I need relative path as that of input folder path i.e path1,path2 
      //..... 
      //.....Processing 
     } 
} 

Надеется, что это помогло

0

Используйте getParentFile()

File target = new File(new File(path1).getParentFile(), "final.tbl"); 
PrintStream out = new PrintStream(target);