그래서 기본적으로 가방을 만들고 있는데 가방 중 하나에 적어도 100000 개의 요소가 있어야한다고 들었습니다. 이클립스의 콘솔 창에 맞지 않습니다. 따라서 파일에 정보를 쓰는 것이 더 좋은 아이디어 인 것 같습니다. 내 주요 메서드 및 runBigBad 메서드를 여기에 넣습니다. 보시다시피, runBigBag 후에, 내가하고 싶은 것이 더 있습니다. 그것은 컴파일되어 잘 실행됩니다. 그러나 runBigBag() 호출 후 모든 내용을 텍스트 파일로 인쇄합니다. 난 그냥 runBigBag()의 내용을 텍스트 파일에, 나머지는 콘솔 창에 인쇄하고 싶습니다. 누군가 나를 도울 수 있습니까? finally 절을 사용하여 ps.close()를 수행하려고하면 ps를 초기화하여 파일을 null로 만듭니다. 그래서 쉬운 방법이 아니면 내가 무엇을해야할지 모르겠습니다. 측설 그래서 이후의 모든 System.out에 호출이 파일 라이터로 전송되는 기본 출력 스트림을 변화하여인쇄 스트림 닫기
public class TestBag {
public static <E> void main(String[] args) {
//Start time for WHOLE PROGRAM
final long start = System.currentTimeMillis();
//Run small bag
runSmallBag();
//RESET COUNTERS TO ALLOW BIG BAG TO KEEP TRACK OF COMPLEXITY
Bag.resetCounters();
//Run big bag
runBigBag();
//Display the operation counters for each method used in whole program
System.out.println("Number of times add() was used for whole program: " + Bag.addCountA + "\n");
System.out.println("Number of times remRand() was used for whole program: " + Bag.ranRemCountA + "\n");
System.out.println("Number of times rem() was used for whole program: " + Bag.remCountA + "\n");
System.out.println("Number of times contains() was used whole program: " + Bag.containsCountA + "\n");
System.out.println("number of times addAll() was used whole program: " + Bag.addAllCountA + "\n");
System.out.println("Number of times union() was used whole program: " + Bag.unionCountA + "\n");
System.out.println("Number of times equal() was used whole program: " + Bag.equalsCountA + "\n");
//End timer for whole program
final long end = System.currentTimeMillis();
//Display timer for whole program
System.out.println("The whole program took " + ((end - start)*.001) + " seconds to run");
}
public static <E> void runBigBag(){
//Start time for big bag operations
final long start2 = System.currentTimeMillis();
boolean prog = true;
//Create file to write bag too
File file = new File("bag.txt");
PrintStream ps;
try {
ps = new PrintStream(new FileOutputStream(file));
System.setOut(ps);
} catch (FileNotFoundException f) {
f.printStackTrace();
} finally
//irrelevant code here
//End timer for big bag
final long end2 = System.currentTimeMillis();
//Display timer for big bag
System.out.println("This part of the program took " + ((end2 - start2)*.001) + " seconds to run");
}
}