网站发布后 用java代码更改了tomcat下该项目下的某个文件的内容 事实证明修改成功了 
但是网页上就显示不出这个内容了。需要手动打开这个文件然后随便改点再保存 才可以在网页上显示出来
这是为什么哇??  JSONArray jsonArray2 = JSONArray.fromObject(Hotels);
  String path = System.getProperty("user.dir").replace("\\", "/") +"/../webapps/ChinaTravelServiceZJ";
path =path+"/data.txt";

File file = new File(path);
Writer outTxt = null;
try {
outTxt = new OutputStreamWriter(new FileOutputStream(file,false), "UTF-8");
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
}
System.out.println(jsonArray2.toString());
System.out.println(path);
        outTxt.write(jsonArray2.toString());
        outTxt.close();

解决方案 »

  1.   


    flush? 还是flash? 这个文件里的内容是用于存放flash的数据的.
      

  2.   


    刚百度了flush() 原来如此 我试试看
      

  3.   

    你的具体是什么情况下不能刷新?先重新写了txt文件,然后再去read,发现文件内容没变?
      

  4.   

    这是我写的一个测试程序,没发现有你说的那种情况public class Test { public static void main(String[] args) throws Exception{
    File file = new File("D:\\workspace\\test\\a.jad");
    Writer outTxt = new OutputStreamWriter(new FileOutputStream(file,false), "GBK");
    outTxt.write("中文测试1");
    outTxt.flush();
    outTxt.close();

    System.out.println("===============writer over==============");
    T t = new T();
    t.start();
    Thread.sleep(10000);
    // BufferedReader reader = new BufferedReader(new FileReader(file));
    // System.out.println(reader.readLine());
    }
    }class T extends Thread{ @Override
    public void run() {
    try {
    File file = new File("D:\\workspace\\test\\a.jad");
    BufferedReader reader = new BufferedReader(new FileReader(file));
    System.out.println(reader.readLine());
    } catch (FileNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    }
      

  5.   

    不不不. 内容变了的.的确可以改掉这个文件的内容。 只是我网站有个flash 里面所需要显示的数据是从这个文件里读出来的 。 本来是可以显示的(默认手动加的数据) 但是通过java对文件的更改后(内容变的) 网站上的flash就显示不出这个数据了 需要我手动打开那个文件然后点下保存 才可以显示。 这个什么情况哇?
      

  6.   

    flash不是太懂,估计是flash没有动态更新。
      

  7.   

    问题已经解决了 主要是
    Writer outTxt = new OutputStreamWriter(new FileOutputStream(file,false), "GBK");之前是utf-8 改成 GBK 就OK了