java修改文件内容问题

jmonian 2012-04-22 05:17:18
网站发布后 用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();
...全文
507 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
安特矮油 2012-04-23
  • 打赏
  • 举报
回复
这是我写的一个测试程序,没发现有你说的那种情况

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();
}
}
}
安特矮油 2012-04-23
  • 打赏
  • 举报
回复
你的具体是什么情况下不能刷新?先重新写了txt文件,然后再去read,发现文件内容没变?
jmonian 2012-04-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

是不是没有flush
[/Quote]

不行哎~~~~~~~~~~·
jmonian 2012-04-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

是不是没有flush
[/Quote]

刚百度了flush() 原来如此 我试试看
jmonian 2012-04-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

是不是没有flush
[/Quote]

flush? 还是flash? 这个文件里的内容是用于存放flash的数据的.
安特矮油 2012-04-23
  • 打赏
  • 举报
回复
是不是没有flush
jmonian 2012-04-23
  • 打赏
  • 举报
回复
问题已经解决了 主要是
Writer outTxt = new OutputStreamWriter(new FileOutputStream(file,false), "GBK");

之前是utf-8 改成 GBK 就OK了
jmonian 2012-04-23
  • 打赏
  • 举报
回复
我就奇怪 为什么需要手动打开下那个文件 什么都不用改它 只要按下保存 就好了
安特矮油 2012-04-23
  • 打赏
  • 举报
回复
flash不是太懂,估计是flash没有动态更新。
jmonian 2012-04-23
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

这是我写的一个测试程序,没发现有你说的那种情况
Java code

public class Test {

public static void main(String[] args) throws Exception{
File file = new File("D:\\workspace\\test\\a.jad");
Writer outTx……
[/Quote]


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

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧