我想在文件out.txt中写入一些数字。形式如
100 200 123 567,即随机的数字中间有空格。但是如果直接写入out.txt打开就是乱码我该怎么把数字写进文件
如何读取呢?
比如我打开out.txt
使用int x 保存100,该怎么做

解决方案 »

  1.   

    用什么编码打开outPutStream?
    写完后flush()了吗?
      

  2.   


    import java.io.FileWriter;
    import java.io.File;public class FileWriterDemo {
        public static void main(String[] args)throws Exception {
            File f=new File("number.txt");
            if(!f.exists())
                f.createNewFile();
            FileWriter fw=new FileWriter(f);
            int[] randomAry=new int[10];//假设10个随机数
            for(int i=0;i<randomAry.length;i++){
                  randomAry[i]=(int)(Math.random()*100);            fw.write(new Integer(randomAry[i]).toString()+" ");
            }
            fw.close();
        }
    }
      

  3.   

    不是编码的问题,应该是数字,有没有牵扯到文字。应该用的是 埃斯科 编码。
    所以你换一种输入流试试,DataOutputStream 
      

  4.   

    使用指定编码,写入
    new BufferedWriter(new OutputStreamWriter(new FileOutputStream(dest), "GBK"))
    使用指定编码,即可。
      

  5.   

    其实对asc ii码来说,想怎么写就怎么写.
    static void t5(){
    OutputStream out = null;
    String str = null;
    try{
    out = new FileOutputStream("d:\\test\\1\\11.txt");

    str = 123+"";
    out.write(str.getBytes());

    out.close();
    }catch(Exception ex){
    ex.printStackTrace();
    }
    }
      

  6.   

    InputStream和OutputStream是处理字节的;
    Reader和writer是处理unicode字符的。
    这两种抽象类的子类中的write方法是只能进行文本的读写或是数字的读写。
    建议用PrintWriter将其转化为打印流。就是修饰流或叫做包装流抱在外围即可。再用prinwriter的对象的println()写出,完美支持数字和文本。
    参考《Core Java》卷二
      

  7.   

    怎么会乱码,LZ是怎么写文件的?
    PrintStream ps = new PrintStream(new FileOutputStream("out.txt"));
    ps.printf("%d %d %d %d\r\n", 100, 200, 123, 567);
    ps.close();
      

  8.   

    我就是使用OutputStream写的。比如out.write(97),那么写入到文件后显示的结果就是a
      

  9.   

    你用out.write(97)文本文件会自动将97这样的值对应某种字符集(估计是gbk)转换为相应的字符串
    如果你想要文本文件打开后显示97 ,应该out.write("97")我上面用FileWriter给你写了一个例子了,你可以参考
      

  10.   

    文本使用Writer,字节流使用 OutputStream。try(PrintWriter writer = new PrintWriter(new FileWriter("out.txt"))){
        Random random = new Random();
        for(int i = 0; i < 10; i++)
            writer.printf("%d%n",random.nextInt());
    }catch(IOException e){
        ...
    }
      

  11.   

    import java.io.BufferedWriter;
    import java.io.FileWriter;
    import java.io.IOException;
    public class Test {
    public static void main(String[] args) {
    FileWriter file;
    try {
    file = new FileWriter("file01.txt");
    BufferedWriter buf=new BufferedWriter(file);
    int[] arr=new int[]{100,521,125,45};
    for(int i=0;i<arr.length;i++){
    buf.write(String.valueOf(arr[i])+" ");

    }buf.flush();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }}