Запишите XML-файл (использующий XStream) к файловой системе в Java

Вы запускаете функцию names в той же строке, где заканчивается c. Просто измените форматирование вашего кода.

Обратите внимание, что более безопасно использовать <- для присвоения объектов объекту. = используется для передачи значений в аргументы функции.

sumstats <- function(y) {
  sumst <- sapply(
    y, 
    function(x) {
      sumstat <- c(
        mean(x, na.rm = TRUE),
        median(x, na.rm = TRUE),
        sd(x, na.rm = TRUE),
        min(x, na.rm = TRUE),
        max(x, na.rm = TRUE)
      ) 
      names(sumstat) <- c("Mean", "Median", "SD", "Min", "Max") 
      return(sumstat)
    }
  ) 
  aperm(sumst)
}
5
задан Mat 25 September 2012 в 17:42
поделиться

6 ответов

XStream имеет средства, чтобы читать из и записать в файлы, видеть простые примеры (Writer.java и Reader.java) в этой статье.

5
ответ дан 18 December 2019 в 14:53
поделиться

Если можно сериализировать его в txt файл, просто открыть ObjectOutputStream и иметь его, используют собственную возможность сериализации Строки Вас.

String str = "serialize me";
    String file = "file.txt";
    try{
        ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(file));
        out.writeObject(str);
        out.close();

        ObjectInputStream in = new ObjectInputStream(new FileInputStream(file));
        String newString = (String) in.readObject();
        assert str.equals(newString);
        System.out.println("Strings are equal");
    }catch(IOException ex){
        ex.printStackTrace();
    }catch(ClassNotFoundException ex){
        ex.printStackTrace();
    }

Вы могли также просто открыть PrintStream и слить сифоном его тот путь, затем использовать BufferedReader и readLine (). Если Вы действительно хотите стать необычными (так как это - присвоение HW, в конце концов), Вы могли использовать для цикла и распечатать каждый символ индивидуально. Используя XML более сложно, чем необходимо сериализировать Строку, и пользование внешней библиотекой является просто излишеством.

4
ответ дан 18 December 2019 в 14:53
поделиться

При начале Java то не торопитесь для просмотра Apache проект палаты общин. Существует много основных расширений Java, который Вы будете много раз использовать.

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

Для записи строки в файл см. org.apache.commons.io. FileUtils:

FileUtils.writeStringToFile(File file,String data)

Считать его назад:

FileUtils.readFileToString(File file)

Ссылки:

http://commons.apache.org/

http://commons.apache.org/io

http://commons.apache.org/io/api-release/org/apache/commons/io/FileUtils.html

Удостоверьтесь, что Вы также смотрите на Ленга свободного городского населения для большого количества хорошего основного материала.

3
ответ дан 18 December 2019 в 14:53
поделиться

Если необходимо создать текстовый файл, содержащий XML, который представляет содержание объекта (и сделайте его двунаправленным), просто используйте JSON-lib:

class MyBean{  
   private String name = "json";  
   private int pojoId = 1;  
   private char[] options = new char[]{'a','f'};  
   private String func1 = "function(i){ return this.options[i]; }";  
   private JSONFunction func2 = new JSONFunction(new String[]{"i"},"return this.options[i];");  

   // getters & setters  
   ...  
}  

JSONObject jsonObject = JSONObject.fromObject( new MyBean() );
String xmlText = XMLSerializer.write( jsonObject );

Оттуда просто записал Строку в Ваш файл. Намного более простой, чем все они API XML. Теперь, однако, если необходимо соответствовать DTD или XSD, это - плохой способ пойти, поскольку это - намного больше свободного формата и соответствует только структуре объекта.

http://json-lib.sourceforge.net/usage.html

Piko

1
ответ дан 18 December 2019 в 14:53
поделиться

Из http://www.xml.com/pub/a/2004/08/18/xstream.html:

import com.thoughtworks.xstream.XStream;

class Date {
    int year;
    int month;
    int day;
}

public class Serialize {
    public static void main(String[] args) {

        XStream xstream = new XStream();

        Date date = new Date();
        date.year = 2004;
        date.month = 8;
        date.day = 15;

        xstream.alias("date", Date.class);

        String decl = "\n";

        String xml = xstream.toXML(date);

        System.out.print(decl + xml);
    }
}

public class Deserialize {

    public static void main(String[] args) {

        XStream xstream = new XStream();

        Date date = new Date();

        xstream.alias("date", Date.class);

        String xml = xstream.toXML(date);

        System.out.print(xml);

        Date newdate = (Date)xstream.fromXML(xml);
        newdate.month = 12;
        newdate.day = 2;

        String newxml = xstream.toXML(newdate);

        System.out.print("\n\n" + newxml);
    }
}

Можно затем взять строку xml и записать это в файл.

0
ответ дан 18 December 2019 в 14:53
поделиться

Там какая-либо конкретная причина состоит в том, чтобы использовать XStream? Это было бы чрезвычайно легко сделать с чем-то как JDOM, если все, что Вы делаете, пытается сериализировать строку или два.

Т.е., что-то как: документ Документа = новый Документ ();

Element rootEl = new Element("root");
rootEl.setText("my string");
doc.appendChild(rootEl);
XMLOutputter outputter = new XMLOutputter();
outputter.output(doc);

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

0
ответ дан 18 December 2019 в 14:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: