2012-04-06 3 views
-1

я пытаюсь читать из файла и сохранять данные в трех целых чисел, красного, зеленого и синего данные в файле устанавливается как:чтение из файла и сохранение в виде целого числа

255,0,0 
0,255,0 
0,0,255 
0,255, 255 

я есть пытались может способы сделать это, но я имею никакого успеха может кто-нибудь помочь здесь не является копией метода до сих пор:

private void readColoursFromFile() { 

    int red = 128; 
    int green = 128; 
    int blue = 128; 

    StringBuilder contents = new StringBuilder(); 
    String filename = "colours.txt"; 
    try { 
    BufferedReader reader; 

    reader = new BufferedReader(new FileReader(filename)); 
    String str; 

    while ((str = reader.readLine()) != null) { 

     StringTokenizer tokenizer = new StringTokenizer(str, ","); 
     String rcolour = tokenizer.nextToken(); 
     String gcolour = tokenizer.nextToken(); 
     String bcolour = tokenizer.nextToken(); 
     Integer irColour = red; 
     Integer igColour = green; 
     Integer ibColour = blue; 
     rcolour = Integer.toString(irColour); 
     gcolour = Integer.toString(ibColour); 
     bcolour = Integer.toString(igColour); 
    contents.append(str); 
     printColourRow(red, green, blue);  
     } 
    { 
    reader.close(); 
    } 
    } catch (IOException e) { 
    System.out.println("error"); 
    e.printStackTrace(); 
} 
} 
+0

Что такое ошибка, вы получаете? Вы должны использовать String.split вместо токенизаторов – Dan

+0

Где вы хотите сохранить данные? – dash1e

+0

проблема заключается не в том, что я получаю сообщение об ошибке, которое компилируется программой, но красные зеленые и синие целые значения всегда по умолчанию равны 128, как было объявлено в начале метода, мне нужно найти способ разделения трех чисел в каждой строке и присвоения их красным зеленым и синим – Shugmaglumfer

ответ

0

вы установка rcolour, gcolour и bcolour значения из этого файла, но вы ничего не делал h их. Затем вы установите для этих значений значение 128. Затем вы печатаете строку цвета (используя printColourRow) значения 128, 128, 128. Переменные red, green и blue все установлены в 128 сверху и никогда не изменяются.

Нельзя ли распечатывать то, что вы читаете из файла? Как и в:

printColourRow(Integer.parseInt(rcolour), 
       Integer.parseInt(gcolour), 
       Integer.parseInt(bcolour)); 
1

Заменить

Integer irColour = red; 
    Integer igColour = green; 
    Integer ibColour = blue; 
    rcolour = Integer.toString(irColour); 
    gcolour = Integer.toString(ibColour); 
    bcolour = Integer.toString(igColour); 

с

red = Integer.parseInt(rcolour); 
    green = Integer.parseInt(gcolour); 
    blue = Integer.parseInt(bcolour); 
+0

, я попытался это сделать, но теперь у меня есть ошибка в методе вывода в файл, хотя это ошибка exeption из моего try catch block – Shugmaglumfer

+0

помогло бы, если бы я разместил всю программу ???? – Shugmaglumfer

+0

Я не ищу работу, которая будет сделана для меня, просто указатели на то, где я иду не так! – Shugmaglumfer

Смежные вопросы