2015-03-15 2 views
-4

Я пытаюсь написать список, содержащий список точек в текстовом файле.Запись списка, содержащего точечные объекты, в текстовый файл

Ниже моя точка класса

public class Point { 

    private final double x; 
    private final double y; 

    public Point(double x, double y) { 
     this.x = x; 
     this.y = y; 
    } 


    public double getX() { 
     return x; 
    } 

    public double getY() { 
     return y; 
    } 


    @Override 
    public String toString() { 
     return ("(" + x + "," + y + ")"); 
    } 
} 

список точек сохраняется в списке

List<Point> pointList = new ArrayList(); 
pointList.add(new Point(100,200)); 
pointList.add(new Point(300,500)); 
pointList.add(new Point(400,200)); 
pointList.add(new Point(100,500)); 
pointList.add(new Point(400,200)); 

поэтому я хотел бы сохранить точки в текстовый файл, но я с трудом понять, как это можно сделать, потому что я новичок в java I/O.

Спасибо за вашу помощь и время заранее.

EDIT: Мне удалось написать способ сохранения точки в текстовом файле. Тем не менее, я получаю странные символы в выходных данных

try { 
       FileOutputStream fileOut = new FileOutputStream(path); 
       ObjectOutputStream out = new ObjectOutputStream(fileOut); 

       for(int i = 0; i < pointList.size(); i++){ 
        String s = parseString(pointList.get(i)); 

        out.writeObject(s); 
       } 
       out.close(); 
       fileOut.close(); 


      } catch (IOException i) { 
       i.printStackTrace(); 
      } 

private static String parseString(Point P){ 
     String point = String.valueOf(P.getX()) + "," + String.valueOf(P.getY()) ; 
     System.out.println("String: " +point); 
     return point; 
    } 

output

Я хотел бы, вывод только что двойники разделены запятой Благодаря

+0

Вы не искали «java IO»? И ваш код не имеет никакого отношения к вашему вопросу. – user7

+0

. Вы еще не показали нам своих лучших усилий в решении этой проблемы и не сказали, какие проблемы у вас возникают при попытке вашего кода. Пожалуйста, сделайте это в ближайшее время, так как это будет A) дать нам гораздо лучшее понимание того, что вы пытаетесь сделать, и предотвратить все эти проблемы с извлечением точной информации от вас, и B) дать нам гораздо лучшее представление о том, что вы можете делать неправильно , с чем вам нужна помощь. –

ответ

0

Прежде всего: читать учебник об ИО. Во-вторых: некоторые подсказки для ваших исследований. Если нет необходимости, чтобы файл был доступен для чтения, я рекомендую использовать ObjectOutput-/InputStream для чтения/записи объектов. Для чего-либо еще вам понадобится реализовать собственный парсермод public static Point parsePoint(String s) и просто написать результаты в файл с помощью файлового администратора.

+0

Я использовал parsePoint для чтения в точках из текстового файла, который имел точки в форме «100,200» в каждой строке, а затем я использовал split («,»), чтобы разделить строку запятой, а затем я добавил возвращаемое значение из parsePoint в список. Но теперь моя проблема заключается в написании списка точек в тексте в той же форме. – Lycon

+0

создайте некоторый метод, который возвращает координаты в том же виде и записывает их в текстовый файл таким же образом. BufferedWriter может помочь. – Paul

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

  • Нет связанных вопросов^_^