相关疑难解决方法(0)

如何在Java中读取/转换InputStream为String?

如果你有一个java.io.InputStream对象,你应该如何处理该对象并产生一个String


假设我有一个InputStream包含文本数据,并且我想将其转换为a String,所以例如我可以将其写入日志文件.

采取InputStream并将其转换为最简单的方法是String什么?

public String convertStreamToString(InputStream is) {
    // ???
}
Run Code Online (Sandbox Code Playgroud)

java string io inputstream stream

3864
推荐指数
37
解决办法
203万
查看次数

如何将文本文件资源读入Java单元测试?

我有一个单元测试,需要使用位于的XML文件src/test/resources/abc.xml.获取文件内容的最简单方法是String什么?

java unit-testing

196
推荐指数
6
解决办法
23万
查看次数

如何从NetBeans中的"Resources"文件夹中正确获取图像

我在NetBeans 7.0中有一个Java项目.

我想动态地将一些图像添加到某个标签.图像将根据程序的状态而有所不同.

我把一个这样的图像'filling.jpg'放在我项目的'resources'文件夹中.

我想正确地访问此文件(不是通过绝对路径或相对路径,因为这会在构建jar文件时导致问题).

所以我找到了这个方法:

ImageIcon fillingIcon = new ImageIcon(getClass().getClassLoader().getResource("filling.jpg"));
labelFontFilling.setIcon(fillingIcon);
Run Code Online (Sandbox Code Playgroud)

它一直给我java.lang.NullPointerException.但我确信有那个图像,因为我可以从NetBeans Properties菜单中为该标签分配图像(但我不想这样,我想通过Java代码添加图像).

我做错了什么,我怎样才能正确地获得该图像?

java resources netbeans

31
推荐指数
3
解决办法
17万
查看次数

以jar运行时出现FileNotFoundException

FileInputStream fstream = new FileInputStream("abc.txt")

作为jar运行时抛出FileNotFoundExceptionn。为什么呢 通常,它可以从main方法运行时找到。

java jar filenotfoundexception

6
推荐指数
1
解决办法
7206
查看次数

从/ src/main/resources /读取文件

您好我正在尝试执行Web应用程序并遇到问题:我不知道如何使用保存在资源文件夹中的Java打开文本文件:

保存在资源文件夹中的文本文件

 String relativeWebPath ="/src/main/resources/words.txt";  //Import der des Textdoumentes
 String absoluteDiskPath = getServletContext().getRealPath(relativeWebPath);
 File f = new File(absoluteDiskPath);
Run Code Online (Sandbox Code Playgroud)

(文件words.txt)

正如你在图像上看到的那样,我试图访问words.txt,但它无法正常工作.有任何想法吗?

java eclipse path relative-path

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

Java 在静态方法中读取文件,使用 ClassLoader 给出 FileNotFoundException

我想在我的 java 类中读取一个文件。我的问题与类似,但有两个不同之处。首先,我使用不同的项目布局:

/src/com/company/project
/resources

在资源文件夹中,我有一个名为“test.txt”的文件:

/资源/测试.txt

在项目文件夹中,我有一个类 test.java

/src/com/company/project/test.java

我希望 mu java 类能够以静态方法读取 test.txt 的内容。我尝试了以下方法:

private static String parseFile()
{
    try
    {
        ClassLoader classLoader = Thread.currentThread().getContextClassLoader();

        String fileURL = classLoader.getResource("test.txt").getFile();

        File file = new File(fileURL);


        ...
    }   
}
Run Code Online (Sandbox Code Playgroud)

以及以下路径:

File file1 = new File("test.txt");
File file2 = new File("/test.txt");
File file3 = new File("/resources/test.txt");
Run Code Online (Sandbox Code Playgroud)

但是当我想读取文件时,它们都会抛出 FileNotFoundException 。如何根据我的项目设置以及该方法需要是静态的这一事实,在上面的代码片段中正确声明我的文件的路径?

java file classloader

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

FileNotFoundException - java测试资源

我正在编写junit测试,我需要从中读取文件src/test/resources

我的代码中有以下代码src/test/java/some_packages/UserTests:

InputStream inputStream = new FileInputStream(new File("abc.txt"));
Run Code Online (Sandbox Code Playgroud)

该文件当然存在,但是当我运行我的测试时,我得到了 java.io.FileNotFoundException: abc.txt (No such file or directory)

我将资源文件夹标记为intellij中的测试资源

java testing intellij-idea

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

资源文件夹中的 JavaFX 图像

出于某种原因,我一直在 gradle javafx 项目中获得 NPE。

我的文件夹结构非常基本。我的main/java文件夹中有一个包含我的 java 文件的包。我的main/resources文件夹中也有我的资源。当我尝试加载image.png它时,它给了我一个 NPE。

public static Image createImage(Object context, String url) {
    Image m = null;
    InputStream str = null;
    URL _url = context.getClass().getResource(url);

    try {
        m = new Image(_url.getPath());
    } catch (NullPointerException e) {
        e.printStackTrace();
    }

    return m;
}
Run Code Online (Sandbox Code Playgroud)

这是一个辅助类。

SceneI 调用:Image image = Helper.createImage(this, "image.png"); 图像的绝对路径将是main/resources/images/image.png.

我检查了互联网上的每个教程,但找不到任何解决方案。我还尝试将图像路径作为参数,也尝试使用 ,InputStream但它从未奏效。

java javafx

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

无法解析方法 readAllBytes()

我想做什么

我正在尝试构建一个 java.net 应用程序,其中客户端和服务器必须通过序列化集合类型作为byte[].

问题

由于未知原因,我的 DataInputStream 无法解析该方法readAllBytes()

一个朋友把它扔进了他的 IDE,它没有抱怨。我不确定这怎么可能是一个版本问题,但我检查过并且我没有错误配置我的项目。我正在使用 Java 8。

  public void startClient() {
        try {
            Socket client = new Socket("localhost", 7000);
            DataOutputStream out = new DataOutputStream(client.getOutputStream());
            out.writeUTF("Hi i'm " + client.getLocalSocketAddress());
            DataInputStream input = new DataInputStream(client.getInputStream());
            byte[] sent = input.readAllBytes(); //"can't resolve method 'readAllBytes()'
            getDataFromClient(input.readAllByes());
//"can't resolve method 'readAllBytes()'
            client.close();


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

在此处输入图片说明

我实际上确定应该支持此方法,但我无法弄清楚为什么不支持,因为它被列为从 Input Stream (docs.oracle.com) 继承的方法

包含该方法的项目也是一个 Gradle …

java client-server gradle

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

如何从Java中的资源文件夹中读取文件?

我在网上找不到任何有用的东西,所以我提了一个问题。如何从资源文件夹读取文件?我有一个源文件夹(src)和一个资源文件夹(res)。两者都在Java中指定为源文件夹。我尝试使用:new File(Main.class.getClassLoader().getResource("shader.glsl").getFile()); 但是没有用。请不要太严格,只问我是否忘了提些什么。提前致谢。

编辑:这些是我得到的错误:

java.io.FileNotFoundException: shader.glsl (Das System kann die angegebene Datei nicht finden)
    at java.io.FileInputStream.open0(Native Method)
    at java.io.FileInputStream.open(Unknown Source)
    at java.io.FileInputStream.<init>(Unknown Source)
    at java.io.FileReader.<init>(Unknown Source)
    at com.leocat.game.shader.ShaderProgram.loadShader(ShaderProgram.java:54)
    at com.leocat.game.shader.ShaderProgram.init(ShaderProgram.java:18)
    at com.leocat.game.shader.StaticShader.init(StaticShader.java:8)
    at com.leocat.game.states.GameState.init(GameState.java:29)
    at com.leocat.game.Game.init(Game.java:91)
    at com.leocat.game.Game.updateGLFW(Game.java:60)
    at com.leocat.game.Game.run(Game.java:132)
    at java.lang.Thread.run(Unknown Source)
Run Code Online (Sandbox Code Playgroud)

java

0
推荐指数
1
解决办法
76
查看次数