在Java中,是否有任何方法可以从文件中读取特定行?例如,读取第32行或任何其他行号.
我正在尝试将查询写入文件以进行调试.该文件在database/execute.php.我想写的文件是database/queries.php.
我正在尝试使用 file_put_contents('queries.txt', $query)
但我得到了
file_put_contents(queries.txt)[function.file-put-contents]:无法打开流:权限被拒绝
我有queries.txt文件chmod'd到777,问题是什么?
我遇到了一个我似乎无法找到任何逻辑的错误.我有这个File对象,它是这样创建的:
File file = new File("utilities/data/someTextFile.txt");
Run Code Online (Sandbox Code Playgroud)
然后我做了file.exists(),它返回false(!?).如果找不到该文件,我正在登录f.getAbsolutePath()文件.当我看路径时,似乎没问题.我可以将完整路径复制粘贴到Windows中的"运行"窗口,文件打开正常.
该文件始终存在,在我的应用程序运行期间不会被删除或更改.它位于本地机器上.
这似乎只在某些情况下发生.我可以随时重现故障,但我确信文件对象的路径不会因我为重现故障而采取的操作而改变.
什么可以导致file.exists()返回虚假?这是否与权限或文件锁等有关?
我有一个Windows服务以简单的格式将其日志写入文本文件.
现在,我将创建一个小应用程序来读取服务的日志,并将现有日志和添加的日志显示为实时视图.
问题是服务锁定文本文件以添加新行,同时查看器应用程序锁定文件以供读取.
服务代码:
void WriteInLog(string logFilePath, data)
{
File.AppendAllText(logFilePath,
string.Format("{0} : {1}\r\n", DateTime.Now, data));
}
Run Code Online (Sandbox Code Playgroud)
观众代码:
int index = 0;
private void Form1_Load(object sender, EventArgs e)
{
try
{
using (StreamReader sr = new StreamReader(logFilePath))
{
while (sr.Peek() >= 0) // reading the old data
{
AddLineToGrid(sr.ReadLine());
index++;
}
sr.Close();
}
timer1.Start();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void timer1_Tick(object sender, EventArgs e)
{
using (StreamReader sr = new StreamReader(logFilePath))
{
// skipping the old data, …Run Code Online (Sandbox Code Playgroud) 我想读取包含空格分隔值的文本文件.值是整数.如何阅读并将其放入数组列表?
以下是文本文件内容的示例:
1 62 4 55 5 6 77
Run Code Online (Sandbox Code Playgroud)
我想把它放在一个arraylist中[1, 62, 4, 55, 5, 6, 77].我怎么能用Java做呢?
我目前正在编写一个小脚本,可以在我们的一个服务器上使用Python.服务器只安装了Python 2.4.4.
直到2.5出来之后我才开始使用Python,所以我习惯了以下形式:
with open('file.txt', 'r') as f:
# do stuff with f
Run Code Online (Sandbox Code Playgroud)
但是,with2.5之前没有声明,我无法找到有关手动清理文件对象的正确方法的示例.
使用旧版本的python时,安全处理文件对象的最佳做法是什么?
我有这个函数以递归方式打印目录中的所有文件的名称.问题是我的代码非常慢,因为它必须在每次迭代时访问远程网络设备.
我的计划是先递归加载目录中的所有文件,然后再使用正则表达式遍历所有文件,过滤掉我不想要的所有文件.有人有更好的建议吗?
public static printFnames(String sDir){
File[] faFiles = new File(sDir).listFiles();
for(File file: faFiles){
if(file.getName().matches("^(.*?)")){
System.out.println(file.getAbsolutePath());
}
if(file.isDirectory()){
printFnames(file.getAbsolutePath());
}
}
}
Run Code Online (Sandbox Code Playgroud)
这只是稍后的一个测试,我不打算使用这样的代码,而是我要将每个匹配高级正则表达式的文件的路径和修改日期添加到数组中.
我想在不删除该文件的当前信息的情况下将新行附加到现有文件.简而言之,这是我使用当前时间的方法:
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.Writer;
Writer output;
output = new BufferedWriter(new FileWriter(my_file_name)); //clears file every time
output.append("New Line!");
output.close();
Run Code Online (Sandbox Code Playgroud)
上述行的问题只是它们删除了我现有文件的所有内容,然后添加了新的行文本.
我想在文件内容的末尾添加一些文本而不删除或替换任何内容.
我得到了一些由恶意软件创建的文件夹,其名称以点C:\a.\或C:\b.\等等结尾.
我找到了一个可以用命令删除这个文件夹的解决方案,rd /q /s "C:\a.\"但如果我调用win API RemoveDirectory,它会返回ERROR_FILE_NOT_FOUND.
我只是想知道如何写一个函数来删除这样的目录,谢谢
我在我自己的Windows XP SP3系统上进行测试
创建一个文件夹C:\>mkdir a..\\\,我无法双击访问此文件夹.我可以用命令删除 rd /q /s "C:\a.\"
rd /q /s命令调用的Windows系统API是什么?
我有一个配置文件,我需要加载作为我正在编写的DLL的执行的一部分.
我遇到的问题是,当应用程序运行时,我放置dll和配置文件的位置不是"当前位置".
例如,我把dll和xml文件放在这里:
D:\ Program Files\Microsoft Team Foundation Server 2010\Application Tier\Web Services\bin\Plugins
但是,如果我尝试像这样引用xml文件(在我的dll中):
XDocument doc = XDocument.Load(@".\AggregatorItems.xml")
Run Code Online (Sandbox Code Playgroud)
然后.\ AggregatorItems.xml转换为:
C:\ WINDOWS\SYSTEM32\INETSRV\AggregatorItems.xml
所以,我需要找到一种方法(我希望)知道当前正在执行的dll所在的位置.基本上我正在寻找这个:
XDocument doc = XDocument.Load(CoolDLLClass.CurrentDirectory+@"\AggregatorItems.xml")
Run Code Online (Sandbox Code Playgroud)