串行化 String都是一样的。不存在中文英文的问题。你所说的串行化是指什么?是Serializable吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你可以用调试的方法看看那个String 到底是什么。说不定从中你可以找到答案! 你说的是序列化么,如果是的话在网络传输中就会有问题,不过java中Swing组件都已经实现了序列化,除非是你自己定义的对象需要实现序列化接口。你说的中英文应该是没问题 你最好定义一个类class XXXXX extends JEditorPane implements java.io.Serializable{} 我说的串行化是Serializable,他和序列化是一个意思把?我没有在网络上传输.我是定义了一个类,其中有几个String 的字段和一个JEditorPane字段,我把这个类用ObjectOutputStream写到文件里啊,当我在JEditorPane里写的是英文的时候就可以写到文件中,如果里面包含中文就说我没有Serializable,其他的几个字段都没有问题的,而且里面是中文的.这个问题捆了我好几天,我就是想 不明白,我现在用String把JEditorPane代替了,取出来再赋给JEditorPane就没有问题,不过这样的话就会失去以前对他们的效果处理啊.我是在做文本处理的小程序. 我查一句我在做一个相关的程序,涉及到映象问题,可以查看类的内部方法,但是我现在只能访问包中的类,如果不在包中,救出错例如:我访问“C:\hello.class”,就会出现notfoundclass 的异常请楼主和过客帮帮忙 这个我没有做过啊,实在抱歉.我觉得可能是你的路径有问题,没有在CLASSPATH中包含进 去这个类,你加上路径再试试看怎么样. 我已经做了一个小实验,代码如下:package test;import java.io.*;import java.awt.BorderLayout;import java.awt.event.*;import javax.swing.*;public class Test { static JEditorPane editor = new JEditorPane(); public static void main(String agrs[]){ JFrame frame = new JFrame(); JButton write = new JButton("write"); JButton read = new JButton("read"); read.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ File file = new File("test.tt"); try{ ObjectInputStream in = new ObjectInputStream( new FileInputStream(file)); editor = (JEditorPane)in.readObject(); System.out.println(editor.getText()); }catch(Exception ex){ System.out.println("has a error!"); } } }); write.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ File file = new File("test.tt"); try{ ObjectOutputStream out = new ObjectOutputStream( new FileOutputStream(file)); out.writeObject(editor); }catch(FileNotFoundException ex){ System.out.println("has a FileNotFoundException!"); }catch(IOException ex){ ex.printStackTrace(); System.out.println("has a IOException!"); } } }); frame.getContentPane().setLayout(new BorderLayout()); frame.getContentPane().add(editor,BorderLayout.CENTER); frame.getContentPane().add(read,BorderLayout.NORTH); frame.getContentPane().add(write,BorderLayout.SOUTH); frame.setSize(500,400); frame.setVisible(true); }}如果我没有设置内容类型他就出现这个错误:java.io.NotSerializableException: javax.swing.text.GapContent$StickyPosition如果我设置了以下两种就出现下面的错误:editor.setContentType("UTF-8");editor.setContentType("ISO-8859-1");java.io.NotSerializableException: java.lang.Object都把我搞晕了,到底哪里有问题啊? 应该是你环境的问题,我已经测试过,在我电脑上,是可以run的,而且没有出错信息! 你试过了在里面写中文的情况了吗?我是用的JBuilder9,你用的什么环境啊?真的和我的环境有关的话,我连测试都不知道怎么做了啊,真郁闷!这个程序里还有个问题,不知道你有没有注意到,这个好象是虚拟机的问题,也是我没有掌握好java的句柄啊,我之所以在read按钮事件中加了一句System.out.println(editor.getText());就是因为JEditorPane中的内容不能再读取了,editor指象的对象已经不再是以前的了,为什么就中断了呢?这个句柄又不是指象空的地方.你能帮我解释一下吗?先谢谢了! "这个程序里还有个问题,不知道你有没有注意到,这个好象是虚拟机的问题,也是我没有掌握好java的句柄啊,我之所以在read按钮事件中加了一句System.out.println(editor.getText());就是因为JEditorPane中的内容不能再读取了,editor指象的对象已经不再是以前的了,为什么就中断了呢?这个句柄又不是指象空的地方."我知道这个问题的答案了,真晕,前两天刚犯了这样的错误,没有想到还是句柄的问题,我真是太笨了,太疏忽了,这样的问题不经过大脑就拿来问,还麻烦大家,真 不好意思. 不过那个串行化还是没有搞明白. C3P0内存溢出问题 问个跟java没多大关系的不过很要命的问题,希望知道的朋友的提点下 500分求Java正态分布算法 请教怎样重新把jre运行起来? 我抛出什么错误呢?? 有没有 方法,让Java自己识别是什么错误? 怎样编码字符串 才能让汉字输出正确? java异常 关于《thinking in JAVA》的问题 散分(3),祝大家新春愉快!回家前结贴。 谁有Borland Appserver 4.5的注册码,急用??? 询问String 下的charAt()函数异常 菜鸟求助!
不过java中Swing组件都已经实现了序列化,除非是你自己定义的对象需要实现序列化接口。
你说的中英文应该是没问题
}
我没有在网络上传输.
我是定义了一个类,其中有几个String 的字段和一个JEditorPane字段,我把这个类用ObjectOutputStream写到文件里啊,当我在JEditorPane里写的是英文的时候就可以写到文件中,如果里面包含中文就说我没有Serializable,其他的几个字段都没有问题的,而且里面是中文的.这个问题捆了我好几天,我就是想 不明白,我现在用String把JEditorPane代替了,取出来再赋给JEditorPane就没有问题,不过这样的话就会失去以前对他们的效果处理啊.我是在做文本处理的小程序.
我在做一个相关的程序,涉及到映象问题,可以查看类的内部方法,
但是我现在只能访问包中的类,如果不在包中,救出错
例如:我访问“C:\hello.class”,就会出现notfoundclass 的异常
请楼主和过客帮帮忙
package test;import java.io.*;
import java.awt.BorderLayout;
import java.awt.event.*;
import javax.swing.*;
public class Test {
static JEditorPane editor = new JEditorPane(); public static void main(String agrs[]){
JFrame frame = new JFrame();
JButton write = new JButton("write");
JButton read = new JButton("read");
read.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
File file = new File("test.tt");
try{
ObjectInputStream in = new ObjectInputStream(
new FileInputStream(file));
editor = (JEditorPane)in.readObject();
System.out.println(editor.getText());
}catch(Exception ex){
System.out.println("has a error!");
}
}
});
write.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
File file = new File("test.tt");
try{
ObjectOutputStream out = new ObjectOutputStream(
new FileOutputStream(file));
out.writeObject(editor);
}catch(FileNotFoundException ex){
System.out.println("has a FileNotFoundException!");
}catch(IOException ex){
ex.printStackTrace();
System.out.println("has a IOException!");
}
}
});
frame.getContentPane().setLayout(new BorderLayout());
frame.getContentPane().add(editor,BorderLayout.CENTER);
frame.getContentPane().add(read,BorderLayout.NORTH);
frame.getContentPane().add(write,BorderLayout.SOUTH);
frame.setSize(500,400);
frame.setVisible(true);
}
}
如果我没有设置内容类型他就出现这个错误:
java.io.NotSerializableException: javax.swing.text.GapContent$StickyPosition
如果我设置了以下两种就出现下面的错误:
editor.setContentType("UTF-8");
editor.setContentType("ISO-8859-1");
java.io.NotSerializableException: java.lang.Object
都把我搞晕了,到底哪里有问题啊?
我是用的JBuilder9,你用的什么环境啊?
真的和我的环境有关的话,我连测试都不知道怎么做了啊,真郁闷!
这个程序里还有个问题,不知道你有没有注意到,这个好象是虚拟机的问题,也是我没有掌握好java的句柄啊,我之所以在read按钮事件中加了一句System.out.println(editor.getText());就是因为JEditorPane中的内容不能再读取了,editor指象的对象已经不再是以前的了,为什么就中断了呢?这个句柄又不是指象空的地方.你能帮我解释一下吗?
先谢谢了!
我知道这个问题的答案了,真晕,前两天刚犯了这样的错误,没有想到还是句柄的问题,我真是太笨了,太疏忽了,这样的问题不经过大脑就拿来问,还麻烦大家,真 不好意思.
不过那个串行化还是没有搞明白.