如果你有一个java.io.InputStream对象,你应该如何处理该对象并产生一个String?
假设我有一个InputStream包含文本数据,并且我想将其转换为a String,所以例如我可以将其写入日志文件.
采取InputStream并将其转换为最简单的方法是String什么?
public String convertStreamToString(InputStream is) {
// ???
}
Run Code Online (Sandbox Code Playgroud) 我有一个单元测试,需要使用位于的XML文件src/test/resources/abc.xml.获取文件内容的最简单方法是String什么?
我在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代码添加图像).
我做错了什么,我怎样才能正确地获得该图像?
FileInputStream fstream = new FileInputStream("abc.txt")
作为jar运行时抛出FileNotFoundExceptionn。为什么呢 通常,它可以从main方法运行时找到。
您好我正在尝试执行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 类中读取一个文件。我的问题与此类似,但有两个不同之处。首先,我使用不同的项目布局:
/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 。如何根据我的项目设置以及该方法需要是静态的这一事实,在上面的代码片段中正确声明我的文件的路径?
我正在编写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中的测试资源
出于某种原因,我一直在 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.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 …
我在网上找不到任何有用的东西,所以我提了一个问题。如何从资源文件夹读取文件?我有一个源文件夹(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)