标签: java-io

从多个方法读取单个InputStream

我已经在类中的单个方法中初始化了一个InputStream,并将其传递给下一个方法进行处理。InputStream本质上封装了用于处理的CSV文件。

另一种方法调用传入同一 InputStream 的 2 个不同方法,一个用于检索标头,另一个用于处理内容。该结构如下所示:

main() {
  FileInputStream fis = new FileInputStream("FileName.CSV");
  BufferedInputStream bis = new BufferedInputStream(fis);
  InputStreamReader isr = new InputStreamReader(bis);

  processCSV(isr);
}

processCSV(Reader isr) {
  fetchHeaders(isr);
  processContentRows(isr);
}

fetchHeaders(Reader isr) {
  //Use BufferedReader to retrieve first line of CSV
  //Even tried mark() and reset() here
}

processContentRows(Reader isr) {
  //Cannot read the values, fetches null from InputStream :(
}
Run Code Online (Sandbox Code Playgroud)

我在这里做错了什么吗?有什么方法可以在不同的方法调用之间重用 InputStream 吗?

我正在提出可以模拟以下问题的完整程序:

  import java.io.FileInputStream;
  import java.io.BufferedInputStream;
  import java.io.InputStreamReader;
  import java.io.BufferedReader;

  public class MarkResetTest
  {
    public static …
Run Code Online (Sandbox Code Playgroud)

java inputstream java-io

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

JAVA中的FileReader方法read()和read(char[])

FileReader我正在使用read()和方法从带有对象的文件中读取所有字符read(char[] ch)。但是当我尝试使用这两种方法时,我只得到其中一种方法的输出。

这是我的代码片段:

class FR
{
    void filereader() throws Exception
    {
        File f = new File("abc.txt");
        FileReader fr = new FileReader(f);
        char[] ch = new char[(int)f.length()];
        fr.read(ch);
        for (char ch1 : ch)
        {
            System.out.print(ch1);
        }
        System.out.println("\n*********************************");
        int i = fr.read();
        while(i != -1)
        {
            System.out.print((char)i);
            i = fr.read();
        }
        fr.close();
    }
}
Run Code Online (Sandbox Code Playgroud)

有人可以解释一下为什么该while部分没有执行吗?

java file while-loop filereader java-io

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

getResourceAsStream("Words.txt")和FileInputStream("./ src/package/Words.txt")之间有什么区别?

我目前正在编写一个基于servlet的应用程序(客户端).我试图在代码所在的同一个包中找到一个文本文件.我遇到的所有方法都使用MyClass.class.getResourceAsStream("Words.txt")classLoader.getResourceAsStream("Words.txt")获取文本文件(例如:SO1,SO2).但我已经尝试过FileInputStream("./src/package/Words.txt"),文本文件仍然可以成功加载.

有什么区别?为什么getResourceAsStream鼓励这种方法呢?

java servlets java-io

-1
推荐指数
1
解决办法
373
查看次数

为什么会出现文件权限错误?

当我在我的网站上使用我的Java小程序时,我收到文件permmission错误.错误是:

access denied ("java.io.FilePermision""image.png""read")
Run Code Online (Sandbox Code Playgroud)

java swing jpanel java-io japplet

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

DataInputStream和DataOutputStream

我制作了自己的缓冲式打字机.但我不知道它是否确实如此?

当我退出时,我做了一个缓冲读取器(200个硬币),当我登录时,我得到(545453个硬币)或其他金额,我确信它是缓冲区的,请帮助!

public static int coins;
private static final String DIR = "./Data/";
    public static boolean SavePlayer;

    public static void saveAll() {
        SavePlayer = true;
        if (!SavePlayer) {
            System.out.println("[WoG Error]: Their was an error saving players.");
            return;
        }
        saveGame();
    }

    public static boolean saveGame() {
        if (Player.playerName == null) {
            return false;
        }
        try {
            File file = new File(DIR + Player.playerName.toLowerCase() + ".dat");
            if (!file.exists()) 
                file.createNewFile();
            FileOutputStream fileOutputStream = new FileOutputStream(file);
            DataOutputStream o = new DataOutputStream(fileOutputStream);
            o.writeUTF(Player.playerName);
            o.writeInt(Player.coins);
            //o.writeInt(Player.height); …
Run Code Online (Sandbox Code Playgroud)

java dataoutputstream java-io datainputstream

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

FileOutputStream 抛出 FileNotFoundException

我正在尝试与目录一起创建一个新文件,但是当我调用“fos = new FileOutputStream(file);”时 它总是抛出找不到文件的错误。这是代码

FileOutputStream fos = null;
String getName = "User";
String filePath="D:/New file";
File file;
Date date = new Date();
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
String headerDate = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss").format(date);

try {
  WritableWorkbook w = Workbook.createWorkbook(outputStream);
  WritableSheet s = w.createSheet("Report generate", 0);
  s.addCell(new Label(0, 0, "New File" + getName));
  s.addCell(new Label(0, 2, "Response Date: " + headerDate));
  w.write();
  w.close();

  String resultFileName = "NewFileToGenerate" +getName+headerDate+ ".xls";
  String fileName = filePath.concat(resultFileName);
  file = new File(fileName);
  file.mkdirs();
  file.createNewFile();
  fos …
Run Code Online (Sandbox Code Playgroud)

java spring file java-io

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

如何使用java从包含特定单词的文件中打印行?

如何使用java从包含特定单词的文件中打印行?

想要创建一个简单的实用程序,它允许在文件中查找单词并打印出给定单词的完整行.

我已经做了很多事情来计算出现但是不要用锄头打印包含它的线......

      import java.io.*;

       public class SearchThe {
          public static void main(String args[]) 
           {
             try 
              {
                String stringSearch = "System";

                 BufferedReader bf = new BufferedReader(new FileReader("d:/sh/test.txt"));

         int linecount = 0;
            String line;

        System.out.println("Searching for " + stringSearch + " in file...");

        while (( line = bf.readLine()) != null)
        {
            linecount++;
            int indexfound = line.indexOf(stringSearch);

            if (indexfound > -1) 
            {
                System.out.println("Word is at position " + indexfound + " on line " + linecount);
            }
        }
        bf.close();
    }
    catch (IOException …
Run Code Online (Sandbox Code Playgroud)

java file-handling java-io

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

尝试将 txt 文件作为 Java 方法的参数传递时出现 FileNotFoundException

全部!我在扫描仪/传递文本文件作为方法的参数时遇到问题。如果我在 main 中创建一个 Scanner,我就可以做所有事情。

import java.io.*;
import java.util.ArrayList;
import java.util.Scanner;

public class App {
    public static void main(String[] args){
        File file = new File([FILEPATH]);
        Scanner inputFile = new Scanner(file);
...
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试将文本文件传递给方法并在那里创建扫描仪时,我收到 FileNotFoundException

import java.io.*;
import java.util.ArrayList;
import java.util.Scanner;

public class App {
    public static void main(String[] args){
        File file = new File([FILEPATH]);
        method(file);
    }

    public static String method(File file){

        Scanner inputFile = new Scanner(file); //This is where I get the error :(
...
Run Code Online (Sandbox Code Playgroud)

问题的提示特意说参数必须是文件,所以我不能改成String参数来传递文件路径。

我使用 .getPath() 来确保我的方法中文件的文件路径与 main 中文件的文件路径匹配,而且确实如此。我不确定需要修复什么。非常感谢任何帮助!

编辑; …

java compiler-errors java.util.scanner java-io

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