标签: java-io

使用Java在映射的网络驱动器中创建文件夹

我正在尝试使用Java为映射的网络驱动器Z创建一个文件夹

不幸的是,文件没有被创建.这就是我正在做的事情:

File file = new File("Z:/file1");
file.mkdir();
Run Code Online (Sandbox Code Playgroud)

不使用映射网络驱动器时此代码有效.这是在Windows环境中.

有任何想法吗?

java unc network-drive java-io

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

在java中将图像作为文本发送

是否可以将图像作为文本读取并通过网络发送?是的,那我们怎么做呢?

java image character-encoding java-io

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

将数据写入BufferedReader的文件?

在Java ...

我有数据存储在BufferedReader中.(我把它作为对HTTP post请求的响应.)

如何将此(二进制)数据写入文件?

我知道如何将字符串写入文件,但如何获取BufferedReader中的数据并将其放入文件中.

提前致谢!

java file-io bufferedreader java-io

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

使用java程序编辑文本文件中的特定行

好的,我说有一个名为"people.txt"的文本文件,它包含以下信息:

 1 adam 20 M
 2 betty 49 F
 3 charles 9 M
 4 david 22 M
 5 ethan 41 M
 6 faith 23 F
 7 greg 22 M
 8 heidi 63 F
Run Code Online (Sandbox Code Playgroud)

基本上,第一个数字是人的ID,然后是人的姓名,年龄和性别.假设我想用不同的值替换第2行或ID号为2的人.现在,我知道我无法使用RandomAccessFile它,因为名称并不总是相同的字节数,也不是年龄.在搜索随机Java论坛时,我发现StringBuilder或者StringBuffer应该满足我的需求,但我不确定如何实现.它们可以用来直接写入文本文件吗?我希望这可以直接从用户输入工作.

java java-io

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

删除文件及其父目录(如果它们为空).(Java)

我正在尝试一个简单的方法,删除文件的上层目录,如果它们是空的,直到它到达基本目录,但我不能使它工作.

它删除文件及其父目录,但是,它的下一个父项在它抛出时不会被删除DirectoryNotEmptyException.它确实是空的,因为只有一个子目录,并且它在上一次迭代中被删除.

因此,文件被删除,其父项被删除,并在那里停止,不再删除上层目录.

编辑:(修改后的代码)

似乎延迟删除目录,因此在下一次检查目录的空白状态时,前一个目录尚未删除.所以我添加了一个while循环来检查,直到该目录不存在.我不知道这是不是一个坏技术,但它适合我的需要.

public static void removeFileAndParentsIfEmpty(Path path) throws IOException {
    if(path == null || path.endsWith(FilesPath.BILLS_DIRECTORY)) {
        return;
    }
    if (Files.isRegularFile(path)){
        Files.deleteIfExists(path);
    } else if (Files.isDirectory(path)){
        if(path.toFile().list().length == 0){
            Files.delete(path);
            while(Files.exists(path));
        }else{
            return;
        }
    } else {
        return;
    }
    removeFileAndParentsIfEmpty(path.getParent());
}
Run Code Online (Sandbox Code Playgroud)

如果有人能提供更好的解决方案,那么这个问题仍然需要批准.谢谢.

java java-io java-7

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

Java FileInputStream

我试图使用FileInputStream基本上读取文本文件,然后将其输出到不同的文本文件中.但是,当我这样做时,我总是会得到非常奇怪的角色.我确信这是我犯的一个简单的错误,感谢任何帮助或指向我正确的方向.这是我到目前为止所得到的.

    File sendFile = new File(fileName);
    FileInputStream fileIn = new FileInputStream(sendFile);
    byte buf[] = new byte[1024];
    while(fileIn.read(buf) > 0) {
        System.out.println(buf);
    }
Run Code Online (Sandbox Code Playgroud)

它正在读取的文件只是一个普通ASCII字符的大文本文件.然而,每当我执行system.out.println时,我得到输出[B @ a422ede.关于如何使这项工作的任何想法?谢谢

java bytearray fileinputstream java-io

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

要求用户进行多次输入

我正在尝试编写一个程序,它会一直询问用户一个整数,直到他们输入一个非整数的值,此时程序停止.

这是我到目前为止:

import java.util.Scanner;
import java.util.ArrayList;

public class InputStats {
    private static Scanner a;

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        ArrayList InputArray = new ArrayList();
        Boolean Running = true;
        System.out.println("Please type an integer. To stop enter a non integer value");
        while (Running) {
            a = Scanner.nextLine();
            if (!a.hasNextInt()) {
                Running = false;
            }
            else {
                InputArray.add(input.nextLine());

        }

            System.out.println(InputArray);
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

但是,使用此代码我收到错误:

error: non-static method nextLine() cannot  be referenced from a static context (for the …
Run Code Online (Sandbox Code Playgroud)

java java-io

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

在服务器上创建Zip文件并使用java下载该zip文件

我有以下代码从mkyong到本地的zip文件.但是,我的要求是在服务器上压缩文件并需要下载.任何人都可以帮忙.

代码写入zipFiles:

public void zipFiles(File contentFile, File navFile)
{
    byte[] buffer = new byte[1024];

    try{
        // i dont have idea on what to give here in fileoutputstream
        FileOutputStream fos = new FileOutputStream("C:\\MyFile.zip");
        ZipOutputStream zos = new ZipOutputStream(fos);
        ZipEntry ze= new ZipEntry(contentFile.toString());
        zos.putNextEntry(ze);
        FileInputStream in = new FileInputStream(contentFile.toString());

        int len;
        while ((len = in.read(buffer)) > 0) {
            zos.write(buffer, 0, len);
        }

        in.close();
        zos.closeEntry();

        //remember close it
        zos.close();

        System.out.println("Done");

    }catch(IOException ex){
       ex.printStackTrace();
    }
}
Run Code Online (Sandbox Code Playgroud)

我可以在fileoutputstream中提供什么?contentfile和navigationfile是我从代码创建的文件.

java zip java-io

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

为什么System.out.println()中不需要java.io.PrintStream?

所以我问自己为什么我不需要导入java.io.PrintStream使用System.out.我知道java.lang编译器默认导入它.行.

因为System是一类java.lang我可以使用的领域System.out.但是这个字段有类型java.io.PrintStream,默认情况下不会导入这个类(它在java.io包中),那么为什么我可以访问System.out.print()而不java.io.PrintStream单独导入呢?

如果我创建自己的类,MyClass那么我就不能做这样的事情MyClass anInstance = new MyClass();.首先需要导入MyClass.为什么这不是强制性的PrintStream

提前致谢.

java java-io

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

为什么在java中使用java.security.SecurityManager可以读取任何文件?

我只想在我的Java程序中读取和写入一些文件.所以我java.security.SecurityManager用来管理这个,但似乎并不令人满意.

Main.java文件如下

import java.io.*;
import java.util.*;
public class Main {
    static private final String INPUT = "in.txt";
    public static void main(String args[]) throws Exception {
        FileInputStream instream = null;
        BufferedReader reader = new BufferedReader(new FileReader(INPUT));
        String tempString = null;
        while ((tempString = reader.readLine()) != null) {
            System.out.println(tempString);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

/opt/java.policy下面的文件

grant {
    permission java.io.FilePermission "./out.txt", "write";
};
Run Code Online (Sandbox Code Playgroud)

然后我跑了

java -Xss64m -Xms16m -Xmx512m -Djava.security.manager -Djava.security.policy=/opt/java.policy Main
Run Code Online (Sandbox Code Playgroud)

但是没有错误,输出就是这样in.txt.我尝试了其他文件并获得了相同的结果.为什么会这样?

java securitymanager java-io

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