gpt4 book ai didi

java - 文本文件只读在 java temp.setReadonly() 中不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 07:04:53 26 4
gpt4 key购买 nike

 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() 方法不起作用,它会打开具有所有访问权限的文件 我如何控制临时文件访问。请验证它并给我想法我该如何解决它。在这里,我尝试以只读模式打开文件,该文件位于临时路径,但代码打开文本文档,但不是以只读模式。我该如何更改它

最佳答案

您的代码错误

  1. 您正在打开一个名为 output.tmp 的文件并将其设置为只读
  2. 您正在写入一个名为 temp 的文件
  3. 您强制记事本打开第 2 步中编写的文件,而不是第 1 步中创建的文件

在步骤 1 中打开的文件是只读的,但在代码的其余部分中不使用它,该代码对完全不同的文件进行操作。

另一个技巧是永远不要自己构造 ApplicationContext ,除非它是为了引导您的应用程序。实现 ApplicationContextAware 或创建一个实例变量来保存 ApplicationContext 并在其上放置 @Autowired

关于java - 文本文件只读在 java temp.setReadonly() 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21575036/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com