我已经在类中的单个方法中初始化了一个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) 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小程序时,我收到文件permmission错误.错误是:
access denied ("java.io.FilePermision""image.png""read")
Run Code Online (Sandbox Code Playgroud) 我制作了自己的缓冲式打字机.但我不知道它是否确实如此?
当我退出时,我做了一个缓冲读取器(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) 我正在尝试与目录一起创建一个新文件,但是当我调用“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从包含特定单词的文件中打印行?
想要创建一个简单的实用程序,它允许在文件中查找单词并打印出给定单词的完整行.
我已经做了很多事情来计算出现但是不要用锄头打印包含它的线......
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) 全部!我在扫描仪/传递文本文件作为方法的参数时遇到问题。如果我在 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 ×8
java-io ×8
file ×2
filereader ×1
inputstream ×1
japplet ×1
jpanel ×1
servlets ×1
spring ×1
swing ×1
while-loop ×1