Программа создает файлы. Не работает новый поток. Почему? - Java
Формулировка задачи:
Доброго времени суток! Вот код:
Как я уже написал в названии темы, эта программа создает тестовые файлы со случайным названием и содержанием. Есть поток t, который делает то же самое, одновременно с первым (по идее). Но этого не происходит. Почему?
import java.io.File; import java.io.IOException; import java.io.PrintWriter; import java.util.Random; public class Virus implements Runnable{ static String s,all="", b; static Random r=new Random(); Thread t; public static void main(String[] args) { for (int o=0;o<5;o++){ //while(true){ b="";all=""; for(int i=1; i<=10; i++){int a=r.nextInt(62)+1; switch (a){ case 1: s="a";all+=s;break;case 2: s="b";all+=s;break;case 3: s="c";all+=s;break;case 4: s="d";all+=s;break; case 5: s="e";all+=s;break;case 6: s="f";all+=s;break;case 7: s="g";all+=s;break;case 8: s="h";all+=s;break; case 9: s="i";all+=s;break;case 10: s="j";all+=s;break;case 11: s="k";all+=s;break;case 12: s="l";all+=s;break; case 13: s="m";all+=s;break;case 14: s="n";all+=s;break;case 15: s="o";all+=s;break;case 16: s="p";all+=s;break; case 17: s="q";all+=s;break;case 18: s="r";all+=s;break;case 19: s="s";all+=s;break;case 20: s="t";all+=s;break; case 21: s="u";all+=s;break;case 22: s="v";all+=s;break;case 23: s="w";all+=s;break;case 24: s="x";all+=s;break; case 25: s="y";all+=s;break;case 26: s="z";all+=s;break;case 27: s="A";all+=s;break;case 28: s="B";all+=s;break; case 29: s="C";all+=s;break;case 30: s="D";all+=s;break;case 31: s="E";all+=s;break;case 32: s="F";all+=s;break; case 33: s="G";all+=s;break;case 34: s="H";all+=s;break;case 35: s="I";all+=s;break;case 36: s="J";all+=s;break; case 37: s="K";all+=s;break;case 38: s="L";all+=s;break;case 39: s="M";all+=s;break;case 40: s="N";all+=s;break; case 41: s="O";all+=s;break;case 42: s="P";all+=s;break;case 43: s="Q";all+=s;break;case 44: s="R";all+=s;break; case 45: s="S";all+=s;break;case 46: s="T";all+=s;break;case 47: s="U";all+=s;break;case 48: s="V";all+=s;break; case 49: s="W";all+=s;break;case 50: s="X";all+=s;break;case 51: s="Y";all+=s;break;case 52: s="Z";all+=s;break; case 53: s="0";all+=s;break;case 54: s="1";all+=s;break;case 55: s="2";all+=s;break;case 56: s="3";all+=s;break; case 57: s="4";all+=s;break;case 58: s="5";all+=s;break;case 59: s="6";all+=s;break;case 60: s="7";all+=s;break; case 61: s="8";all+=s;break;case 62: s="9";all+=s;break; } }b=all; for(int i=1; i<=2000; i++){int a=r.nextInt(62)+1; switch (a){ case 1: s="a";all+=s;break;case 2: s="b";all+=s;break;case 3: s="c";all+=s;break;case 4: s="d";all+=s;break; case 5: s="e";all+=s;break;case 6: s="f";all+=s;break;case 7: s="g";all+=s;break;case 8: s="h";all+=s;break; case 9: s="i";all+=s;break;case 10: s="j";all+=s;break;case 11: s="k";all+=s;break;case 12: s="l";all+=s;break; case 13: s="m";all+=s;break;case 14: s="n";all+=s;break;case 15: s="o";all+=s;break;case 16: s="p";all+=s;break; case 17: s="q";all+=s;break;case 18: s="r";all+=s;break;case 19: s="s";all+=s;break;case 20: s="t";all+=s;break; case 21: s="u";all+=s;break;case 22: s="v";all+=s;break;case 23: s="w";all+=s;break;case 24: s="x";all+=s;break; case 25: s="y";all+=s;break;case 26: s="z";all+=s;break;case 27: s="A";all+=s;break;case 28: s="B";all+=s;break; case 29: s="C";all+=s;break;case 30: s="D";all+=s;break;case 31: s="E";all+=s;break;case 32: s="F";all+=s;break; case 33: s="G";all+=s;break;case 34: s="H";all+=s;break;case 35: s="I";all+=s;break;case 36: s="J";all+=s;break; case 37: s="K";all+=s;break;case 38: s="L";all+=s;break;case 39: s="M";all+=s;break;case 40: s="N";all+=s;break; case 41: s="O";all+=s;break;case 42: s="P";all+=s;break;case 43: s="Q";all+=s;break;case 44: s="R";all+=s;break; case 45: s="S";all+=s;break;case 46: s="T";all+=s;break;case 47: s="U";all+=s;break;case 48: s="V";all+=s;break; case 49: s="W";all+=s;break;case 50: s="X";all+=s;break;case 51: s="Y";all+=s;break;case 52: s="Z";all+=s;break; case 53: s="0";all+=s;break;case 54: s="1";all+=s;break;case 55: s="2";all+=s;break;case 56: s="3";all+=s;break; case 57: s="4";all+=s;break;case 58: s="5";all+=s;break;case 59: s="6";all+=s;break;case 60: s="7";all+=s;break; case 61: s="8";all+=s;break;case 62: s="9";all+=s;break; } } write(b,all);} } public static void write(String name, String text) { File file = new File(name+".txt"); try { if(!file.exists()){ file.createNewFile(); } PrintWriter out=new PrintWriter(file); try { out.print(text); } finally { out.close(); } } catch(IOException e) { throw new RuntimeException(e);} } public Virus(){ if(t==null){ t=new Thread(this); } t.start();run(); } @Override public void run() {System.out.println("БЛа"); String bb,al="",ss; if(t!=null){System.out.println("БЛа"); for (int op=0;op<5;op++){ System.out.println("БЛа"); //while(true){ bb="";al="";ss=""; for(int i=1; i<=10; i++){int a=r.nextInt(62)+1; switch (a){ case 1: ss="a";al+=ss;break;case 2: ss="b";al+=s;break;case 3: ss="c";al+=s;break;case 4: ss="d";al+=ss;break; case 5: ss="e";al+=ss;break;case 6: ss="f";al+=ss;break;case 7: ss="g";al+=ss;break;case 8: ss="h";al+=ss;break; case 9: ss="i";al+=ss;break;case 10: ss="j";al+=ss;break;case 11: ss="k";al+=ss;break;case 12: ss="l";al+=ss;break; case 13: ss="m";al+=ss;break;case 14: ss="n";al+=ss;break;case 15: ss="o";al+=ss;break;case 16: ss="p";al+=ss;break; case 17: ss="q";al+=ss;break;case 18: ss="r";al+=ss;break;case 19: ss="s";al+=ss;break;case 20: ss="t";al+=ss;break; case 21: ss="u";al+=ss;break;case 22: ss="v";al+=ss;break;case 23: ss="w";al+=ss;break;case 24: ss="x";al+=ss;break; case 25: ss="y";al+=ss;break;case 26: ss="z";al+=ss;break;case 27: ss="A";al+=ss;break;case 28: ss="B";al+=ss;break; case 29: ss="C";al+=ss;break;case 30: ss="D";al+=ss;break;case 31: ss="E";al+=ss;break;case 32: ss="F";al+=ss;break; case 33: ss="G";al+=ss;break;case 34: ss="H";al+=ss;break;case 35: ss="I";al+=ss;break;case 36: ss="J";al+=ss;break; case 37: ss="K";al+=ss;break;case 38: ss="L";al+=ss;break;case 39: ss="M";al+=ss;break;case 40: ss="N";al+=ss;break; case 41: ss="O";al+=ss;break;case 42: ss="P";al+=ss;break;case 43: ss="Q";al+=ss;break;case 44: ss="R";al+=ss;break; case 45: ss="S";al+=ss;break;case 46: ss="T";al+=ss;break;case 47: ss="U";al+=ss;break;case 48: ss="V";al+=ss;break; case 49: ss="W";al+=ss;break;case 50: ss="X";al+=ss;break;case 51: ss="Y";al+=ss;break;case 52: ss="Z";al+=ss;break; case 53: ss="0";al+=ss;break;case 54: ss="1";al+=ss;break;case 55: ss="2";al+=ss;break;case 56: ss="3";al+=ss;break; case 57: ss="4";al+=ss;break;case 58: ss="5";al+=ss;break;case 59: ss="6";al+=ss;break;case 60: ss="7";al+=ss;break; case 61: ss="8";al+=ss;break;case 62: ss="9";al+=ss;break; } }bb=al; for(int i=1; i<=2000; i++){int a=r.nextInt(62)+1; switch (a){ case 1: ss="a";al+=ss;break;case 2: ss="b";al+=s;break;case 3: ss="c";al+=s;break;case 4: ss="d";al+=ss;break; case 5: ss="e";al+=ss;break;case 6: ss="f";al+=ss;break;case 7: ss="g";al+=ss;break;case 8: ss="h";al+=ss;break; case 9: ss="i";al+=ss;break;case 10: ss="j";al+=ss;break;case 11: ss="k";al+=ss;break;case 12: ss="l";al+=ss;break; case 13: ss="m";al+=ss;break;case 14: ss="n";al+=ss;break;case 15: ss="o";al+=ss;break;case 16: ss="p";al+=ss;break; case 17: ss="q";al+=ss;break;case 18: ss="r";al+=ss;break;case 19: ss="s";al+=ss;break;case 20: ss="t";al+=ss;break; case 21: ss="u";al+=ss;break;case 22: ss="v";al+=ss;break;case 23: ss="w";al+=ss;break;case 24: ss="x";al+=ss;break; case 25: ss="y";al+=ss;break;case 26: ss="z";al+=ss;break;case 27: ss="A";al+=ss;break;case 28: ss="B";al+=ss;break; case 29: ss="C";al+=ss;break;case 30: ss="D";al+=ss;break;case 31: ss="E";al+=ss;break;case 32: ss="F";al+=ss;break; case 33: ss="G";al+=ss;break;case 34: ss="H";al+=ss;break;case 35: ss="I";al+=ss;break;case 36: ss="J";al+=ss;break; case 37: ss="K";al+=ss;break;case 38: ss="L";al+=ss;break;case 39: ss="M";al+=ss;break;case 40: ss="N";al+=ss;break; case 41: ss="O";al+=ss;break;case 42: ss="P";al+=ss;break;case 43: ss="Q";al+=ss;break;case 44: ss="R";al+=ss;break; case 45: ss="S";al+=ss;break;case 46: ss="T";al+=ss;break;case 47: ss="U";al+=ss;break;case 48: ss="V";al+=ss;break; case 49: ss="W";al+=ss;break;case 50: ss="X";al+=ss;break;case 51: ss="Y";al+=ss;break;case 52: ss="Z";al+=ss;break; case 53: ss="0";al+=ss;break;case 54: ss="1";al+=ss;break;case 55: ss="2";al+=ss;break;case 56: ss="3";al+=ss;break; case 57: ss="4";al+=ss;break;case 58: ss="5";al+=ss;break;case 59: ss="6";al+=ss;break;case 60: ss="7";al+=ss;break; case 61: ss="8";al+=ss;break;case 62: ss="9";al+=ss;break; } } File fille = new File(bb+".txt"); try { if(!fille.exists()){ fille.createNewFile(); } PrintWriter outt=new PrintWriter(fille); try { outt.print(al); } finally { outt.close(); } } catch(IOException e) { throw new RuntimeException(e);}} } } }
Решение задачи: «Программа создает файлы. Не работает новый поток. Почему?»
textual
Листинг программы
t=new Thread(this);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д