package com.studytrails.tutorials.springremotingrmiserver;
import java.lang.Object;
import java.io.*;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.core.io.Resource;
public class GreetingServiceImpl implements GreetingService {
@Override
public String getGreeting(String name) {
return "Hello " + name + "!";
}
public String getText()
{
ApplicationContext appContext = new ClassPathXmlApplicationContext(new String[]{"spring-config-server.xml"});
Resource resource = appContext.getResource("file:D:\\text\\test.txt");
StringBuilder builder = new StringBuilder();
try{
InputStream is = resource.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
File temp=File.createTempFile("output", ".tmp");
temp.setReadOnly();
String filePath=temp.getAbsolutePath();
// System.out.println(""+filePath);
String line;
PrintWriter out = new PrintWriter(new FileWriter("temp"));
while ((line = br.readLine()) != null) {
//System.out.println(line);
out.println(line);
//br.close();
}
RandomAccessFile file = new RandomAccessFile(temp, "r");
String[] cmd = {"notepad" , "temp"};
Runtime runtime = Runtime.getRuntime();
Process proc = runtime.exec(cmd);
out.close();
br.close();
temp.deleteOnExit();
}catch(IOException e){
e.printStackTrace();
}
return builder.toString();
}
}
在此代码中temp.setReadonly()
方法无效,它会打开具有所有访问权限的文件
我如何控制临时文件访问。请验证它并给我这个想法
我怎么能解决它。在这里,我试图以只读模式打开文件,该模式位于
临时路径,但代码打开文本文档,但它不是只读模式。我怎么能改变它
答案 0 :(得分:1)
您的代码错误
output.tmp
的文件,并将其设置为只读temp
在步骤1中打开的文件是只读的,但在代码的其余部分中不使用,该代码在一个完全不同的文件上运行。
另一个提示永远不会自己构造ApplicationContext
,除非它是用于引导您的应用程序。实现ApplicationContextAware
或创建实例变量以保存ApplicationContext
并将@Autowired
放在其上。