Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.04.2017, 17:14   #1
TheVines
Новичок
Джуниор
 
Регистрация: 11.04.2017
Сообщений: 2
По умолчанию Чтение данных из файла для дальнейших математических преобразований.

Здравствуйте.
Я только начинаю учить Java, более того еще не дошел до темы, которая будет здесь обсуждаться, но очень нужно решить данную задачу. Поэтому заранее прошу прощение за неграмотный код и нелепые ошибки.
Задача в следующем: есть текстовый файл 1.txt, содержащий координаты точек в формате (имя,X,Y,Z). В качестве разделителей выступает запятые.
Нужно импортировать данные координаты в таком виде, чтобы можно было производить математические операции с координатами.
Мне кое как получилось импортировать данные в виде текста.
Код:
import javax.swing.JFileChooser;
import java.io.*;

public class DataT{
	public static void main (String[] args){
	
		JFileChooser fileopen = new JFileChooser();
	int ret = fileopen.showDialog(null, "Open File");                
	if (ret == JFileChooser.APPROVE_OPTION) {
	    File file = fileopen.getSelectedFile();
		try (BufferedReader br = new BufferedReader(new FileReader(file))){
			String s;
			StringBuilder s2 = new StringBuilder();
			while ((s=br.readLine())!=null){
				s2.append(s+"\n");
			}
				System.out.println(s2);
				br.close();
			
		}
		catch (IOException exc){
			System.out.println(exc.getMessage());
		}
	}
}}
Вложения
Тип файла: txt 1.txt (514 байт, 139 просмотров)
TheVines вне форума Ответить с цитированием
Старый 13.04.2017, 06:06   #2
alexzk
Форумчанин
 
Регистрация: 12.04.2017
Сообщений: 889
По умолчанию

А зачем вы соединяете все в 1 строку (s2) ?

Сделайте список строк, и каждую прочитанную добавляйте в него.
Далее, для каждой прочитаной строки в списке

String[] parts = string.split(",");
String part1 = parts[0]; // 004
String part2 = parts[1]; // 034556
далее части преобразовываете в числа и делаете, что нужно.

Все работы со списками делать в цикле for и проверять размер.

Код:
List<String> s2 = new LinkedList<>();
			while ((s=br.readLine())!=null){
				s2.add(s);
			}

for (String s : s2)
{
    parts = s.split(",");
    for (String part : parts)
    {
    //do some
    }   
}
Вопщем идея такая, мог не верно написать названия - простите - давно яву по памяти не пользовал.
Собственно, если исходный файл вам не нужен, то промежуточный s2 вообще убрать можно и объединить while и внутренний for

Последний раз редактировалось alexzk; 13.04.2017 в 06:11.
alexzk вне форума Ответить с цитированием
Старый 13.04.2017, 08:05   #3
TheVines
Новичок
Джуниор
 
Регистрация: 11.04.2017
Сообщений: 2
По умолчанию

Спасибо!
TheVines вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чтение из текстового файла данных для типа запись, Pascal. anton_guitar Помощь студентам 1 12.05.2015 20:59
Чтение данных из файла С++ 19dmitry19 Помощь студентам 18 02.02.2015 19:40
Чтение данных из файла (C++) art00 Помощь студентам 1 10.07.2013 18:04
Чтение данных из файла Бинари C++ Builder 2 05.11.2011 14:43
Чтение данных из файла в С++ Zaya007 Помощь студентам 9 17.03.2009 21:00