EFI Interview Question
Software EngineersCountry: India
Interview Type: In-Person
package com.practice;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.OutputStreamWriter;
import java.io.Writer;
public class InterleaveLines {
public static void main(String[] args) {
// TODO Auto-generated method stub
String fileName1 = "src/com/practice/fileName1";
String fileName2 = "src/com/practice/fileName2";
interleaveLines(fileName1, fileName2);
}
public static void interleaveLines(String fileName1, String fileName2) {
BufferedWriter writer = null;
System.out.println(new File(".").getAbsoluteFile());
try {
File newFile = new File("src/com/practice/interleave");
writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(newFile)));
BufferedReader reader1 = new BufferedReader(new FileReader(fileName1));
BufferedReader reader2 = new BufferedReader(new FileReader(fileName2));
String line1 = reader1.readLine();
String line2 = reader2.readLine();
while (line1 != null && line2 != null) {
writer.write(line1);
writer.newLine();
writer.write(line2);
writer.newLine();
line1 = reader1.readLine();
line2 = reader2.readLine();
}
if (line1 != null || line2 != null) {
BufferedReader reader = line1 != null ? reader1 : reader2;
String line = line1 != null? line1: line2;
while (line != null) {
writer.write(line);
writer.newLine();
line = reader.readLine();
}
}
}
catch(Exception e) {
System.out.println(e.toString());
}
finally {
try {
writer.close();
}
catch (Exception ex) {
/*ignore*/
}
}
}
}
In ZoomBA, or rather any other language, the logic should be clear like this :
- NoOne December 20, 2016