标签: file-io

如何在java中检查Path是否存在?

我有一个java程序,它以path作为参数.我想在进行其他验证之前检查给定路径是否存在.例如:如果我给出一个不存在的路径D:\ Log\Sample,它必须抛出filenotfound异常.我怎样才能做到这一点?

java file-io

23
推荐指数
3
解决办法
5万
查看次数

Linux是否保证在close()之后文件的内容被刷新到光盘?

当使用close()fclose()(例如)关闭文件时,Linux是否保证将文件写回(持久)光盘?

我的意思是,如果close()返回0然后立即断电,以前写的数据是否保证会持续存在,即是否持久?

fsync()系统调用确实提供了这种保证.关闭文件也足够了吗?

我找不到任何可能以某种方式提出任何要求的东西.


问题2:

如果close()隐含地做了fsync(),有没有办法告诉它不要?

linux filesystems file-io

23
推荐指数
4
解决办法
1万
查看次数

如何从EJB 3访问文件系统?

我想知道如何从EJB 3 bean访问文件系统?

我在互联网上搜索了这个主题,并没有找到一个好的答案.

有人建议使用java.io/java.nio,即使规范禁止这种用法.大多数应用程序服务器似乎都允许访问此API.

另一个想法是使用JCA连接器来访问文件系统或LDAP目录.

我想要做的就是避免在数据库中使用BLOB,因为在性能和使用的资源方面,简单文件是一个更好的解决方案.

你会如何解决这个问题?

java file-io ejb-3.0

23
推荐指数
3
解决办法
1万
查看次数

漂亮打印到ruby中的文件

我试图将哈希打印到文件.

我尝试了unix重定向[逐步添加不同的标志]:

`echo #{pp  mymap} | tee summary.out 2>&1`
Run Code Online (Sandbox Code Playgroud)

和文件IO

 my_file = File.new(@dir_+"/myfile.out",'w+')          
 my_file.puts `#{pp get_submap_from_final(all_mapping_file,final_map)}`
Run Code Online (Sandbox Code Playgroud)

它总是打印到控制台并且不写入文件.

还有一种更简单的方法可以在ruby中的一行中写入文件吗?而不是做File.new然后写入文件?

ruby file-io pretty-print

23
推荐指数
2
解决办法
1万
查看次数

正确地读取和写入std :: vector到文件中

这就是重点.如何在其中写入和读取带有std :: vector的二进制文件?

我想的是:

//============ WRITING A VECTOR INTO A FILE ================
const int DIM = 6;
int array[DIM] = {1,2,3,4,5,6};
std::vector<int> myVector(array, array + DIM);
ofstream FILE(Path, ios::out | ofstream::binary);
FILE.write(reinterpret_cast<const char *>(&myVector), sizeof(vector) * 6);
//===========================================================
Run Code Online (Sandbox Code Playgroud)

但我不知道如何阅读这个载体.因为我认为以下是正确的,但它不是:

ifstream FILE(Path, ios::in | ifstream::binary);
FILE.read(reinterpret_cast<const char *>(&myVector), sizeof(vector) * 6);
Run Code Online (Sandbox Code Playgroud)

那么,如何进行操作?

c++ file-io iostream stl stdvector

23
推荐指数
2
解决办法
4万
查看次数

删除(取消链接)与正则表达式匹配的文件

我想删除目录中的几个文件,匹配正则表达式.像这样的东西:

// WARNING: not real code
require('fs').unlink(/script\.\d+\.js$/);
Run Code Online (Sandbox Code Playgroud)

由于unlink不支持正则表达式,我使用它代替:

var fs = require('fs');

fs.readdir('.', (error, files) => {
    if (error) throw error;

    files.filter(name => /script\.\d+\.js$/.test(name)).forEach(fs.unlink);
});
Run Code Online (Sandbox Code Playgroud)

这是有效的,但IMO比它应该更复杂.


是否有更好的内置方法来删除与正则表达式匹配的文件(甚至只是使用通配符)?

javascript filesystems file-io node.js

23
推荐指数
2
解决办法
1万
查看次数

在R中读取两行标题

当标题有两个必要的标题行时,将文件读入R的最佳方法是什么?

这种情况一直发生在我身上,因为人们经常使用一行作为列名,然后在其下面包含另一行作为测量单位.我不想跳过任何东西.我想要名字和单位进行.

以下是具有两个标头典型文件可能如下所示:

trt   biomass    yield
crop    Mg/ha    bu/ac
C2      17.76   205.92
C2      17.96   207.86
CC      17.72   197.22
CC      18.42   205.20
CCW     18.15   200.51
CCW     17.45   190.59
P       3.09    0.00
P       3.34    0.00
S2      5.13    49.68
S2      5.36    49.72
Run Code Online (Sandbox Code Playgroud)

file-io r

23
推荐指数
3
解决办法
2万
查看次数

尝试使用open(filename,'w')给出IOError:[Errno 2]如果目录不存在则没有这样的文件或目录

我正在尝试使用Python创建和写入文本文件.我搜索过,无法找到此错误的解决方案/原因.

这是不起作用的代码:

afile = 'D:\\temp\\test.txt'
outFile = open(afile, 'w' )
outFile.write('Test.')
outFile.close()

# Error: 2
# Traceback (most recent call last):
#   File "<maya console>", line 1, in <module>
# IOError: [Errno 2] No such file or directory: 'D:\\temp\\test.txt' #
Run Code Online (Sandbox Code Playgroud)

我找到的大多数答案都与路径中的斜线有关,所以......

I tried 'D:/temp/test.txt' and got an error.
I tried r'D:\temp\test.txt' and got an error.
Run Code Online (Sandbox Code Playgroud)

当我尝试在D的根目录创建文件时:/我已成功.

'D:/test.txt' works.
'D:\\test.txt' works.
r'D:\test.txt' works.
Run Code Online (Sandbox Code Playgroud)

在尝试创建文件时,似乎无法创建我想要的目录路径.在Windows上使用Python在特定路径上创建文件的正确方法是什么(7)?我误解open()可以做什么?如果它们不存在,它是否会创建目录,或者在"写入"模式下使用open()创建文件之前是否需要显式创建目录路径?

python file-io create-directory python-2.7

23
推荐指数
1
解决办法
7万
查看次数

如何在不访问新文件的情况下在Emacs中"另存为..."?

如果我C-xC-w (write-file)用来将当前缓冲区的内容写入新位置,那么之后我的缓冲区将访问新文件而不是原始文件.有时我想将缓冲区的副本保存到新位置,但随后在原始位置继续编辑.

我知道我可以从(write-file)迷你缓冲区历史记录中删除现有的文件名,然后在C-xC-f (find-file)提示符后立即将其重新访问以重新访问原始文件,这就是我现在使用的解决方法.然而,这感觉不够优雅.

我想知道是否(write-file)可能采用某种类型的前缀参数来访问缓冲区,但这只会影响覆盖确认.

那么:有没有更简单的方法将我的缓冲区内容保存到文件而不改变我正在访问的文件?

emacs file-io

23
推荐指数
4
解决办法
8275
查看次数

强制停止在外部线程上运行的Java Files.copy()

这里的答案似乎是Java 8之前的有效解决方案: 如何在Java中取消Files.copy()?

但现在它不起作用,因为它ExtendedCopyOption.INTERRUPTIBLE是私人的.


基本上,我需要从一些给定的文件下载文件URL并使用它保存到我的本地文件系统Files.copy().目前,我正在使用JavaFX服务,因为我需要在a中显示进度ProgressBar.

但是,Files.copy()如果操作时间过长,我不知道如何阻止线程运行.使用Thread.stop()至少是不需要的.甚至Thread.interrupt()失败了.

如果互联网连接不可用,我还希望操作正常终止.

为了测试没有互联网连接时的情况,我将移除以太网线并在3秒后将其重新放回.不幸的是,Files.copy()只有当我放回以太网电缆时返回,而我希望它立即失败.

正如我所看到的,内部Files.copy()正在运行一个循环,这会阻止线程退出.


Tester(下载OBS Studio exe):

/**
 * @author GOXR3PLUS
 *
 */
public class TestDownloader extends Application {

    /**
     * @param args
     */
    public static void main(String[] args) {
    launch(args);
    }

    @Override
    public void start(Stage primaryStage) throws Exception {
    // Block From exiting
    Platform.setImplicitExit(false);

    // Try to download the File from URL
    new DownloadService().startDownload(
        "https://github.com/jp9000/obs-studio/releases/download/17.0.2/OBS-Studio-17.0.2-Small-Installer.exe", …
Run Code Online (Sandbox Code Playgroud)

java file-io multithreading nio javafx

23
推荐指数
1
解决办法
1464
查看次数